Articles of animation

如何在Android中添加视图animation?

我想知道是否有一种简单的方法可以将一个视图(一个按钮)添加到RelativeLayout,并使用某种缩放animation。 我从Button扩展了一个类,并做了类似这样的事情: public class MyButton extends Button { @Override protected void onAttachedToWindow() { super.onAttachedToWindow(); ScaleAnimation anim = new ScaleAnimation(0,1,0,1); anim.setDuration(1000); anim.setFillAfter(true); this.startAnimation(anim); } 然后尝试将此按钮添加到视图,它不起作用。 请帮忙!

更改ViewPager的animation样式

我想使用Android Animation Framework更改Android的ViewPager类的animation风格。 可能吗?

两个imageview之间的animation过渡

一方面我有一个带有两个ImageView的布局: 另一方面,我有一个图像资源列表: static int mImages[] = new int[] { R.drawable.artistes, R.drawable.couple1, R.drawable.couple2, R.drawable.couple3, R.drawable.enfant, R.drawable.manege, R.drawable.manege2, R.drawable.metropolitain, R.drawable.panoramique, R.drawable.sacrecoeur }; 我还有一个由Handler + postDelayed()制作的调度程序,用计时器一个接一个地显示图像。 这工作正常 我的问题是关于从一个图像视图到另一个图像视图的过渡animation,知道我每次都要清理图像视图以避免OutOfMemoryExceptions: 现在我在schduled回调方法中这样做: if (mIndex == mImages.length) { mIndex = 0; // repeat } if (mIndex % 2 != 0) { // pair mImageCross2.setImageResource(mImages[mIndex++]); Utils.crossfade(mImageCross2, mImageCross1, 1000/*duration*/); mImageCross1.setImageResource(0); } else { mImageCross1.setImageResource(mImages[mIndex++]); […]

CircularRevealanimation在首次尝试时不起作用

在android 5.0中,我正在尝试使用圆形揭示animation 问题 当我点击按钮开始显示animation时,第一次点击animation无法启动 第二次点击它可以正常工作 我的代码 public class MainActivity extends ActionBarActivity { Animator a; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final View cardType = findViewById(R.id.cardtype); cardType.setVisibility(View.GONE); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { a = ViewAnimationUtils.createCircularReveal(cardType, cardType.getWidth(), cardType.getHeight(), 0, cardType.getHeight() * 2) .setDuration(2500); a.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationStart(Animator animation) { super.onAnimationStart(animation); cardType.setVisibility(View.VISIBLE); } […]

活动退出animation在Android 4.0上无法正常工作

我有一个主题可以更改活动的打开/关闭/进入/退出animation: @style/down_up_animation @anim/slide_in_top @anim/hold @anim/hold @anim/slide_out_bottom 在清单中: 目标是使活动内容在开始时向下滑动,在退出时向上滑动。 animation在2.3上运行良好。 但是,在4.0上,退出animation(向上滑动)不起作用。 animation的作用是关闭从此活动中产生的活动。 在我的例子中,我想用文章列表来animation关闭活动,而不是关闭文章细节有滑动animation。 我想我可以尝试将结束animation添加到生成我想要animation的活动的活动中,但它实际上产生了应该具有不同animation的活动。 我也找不到有关此文档中 2.3和4.0差异的任何信息。 如何让我的animation在4.0上运行?

如何在使用animation制作器激活其某些属性后将视图重置为原始状态?

我正在使用animation师(ObjectAnimator)来animation视图的一些属性(缩放,旋转) 。 当ObjectAnimators设置为目标视图时, 目标视图可以正常设置animation。 但是还需要在一段时间后查看原始位置 (重置) 。 我试图取消()animation师,但它只取消animation并且不重置视图。 可能的解决方案:创建另一个与初始animation师正好相反的animation师。 有没有其他方法可以重置它?

检测适配器中的滚动方向(向上/向下)

我想在我的项目中模仿Google Plus应用程序,因为它现在似乎是参考。 滚动时的列表视图效果非常好,我想做类似的事情。 我已经开始使用LayoutAnimationController http://android-er.blogspot.be/2009/10/listview-and-listactivity-layout.html LayoutAnimationController controller = AnimationUtils.loadLayoutAnimation( this, R.anim.list_layout_controller); getListView().setLayoutAnimation(controller); 这似乎很糟糕,因为并非所有元素都是animation的: 所以我最后使用了适配器的getView并使用它: AnimationSet set = new AnimationSet(true); Animation animation = new AlphaAnimation(0.0f, 1.0f); animation.setDuration(800); set.addAnimation(animation); animation = new TranslateAnimation( Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 1.0f,Animation.RELATIVE_TO_SELF, 0.0f ); animation.setDuration(600); set.addAnimation(animation); row.startAnimation(set); 结果太棒了,我真的很开心! 不幸的是,只有当我从列表的顶部滚动到底部时它才有效! 我想在另一边滚动时使它工作,我需要改变一点TranslateAnimation。 所以我的问题是,有没有办法检测我是否在我的适配器中向上或向下滚动?

Androidanimation翻盖和缓解(打开书本animation)

那里有几个按钮/图像。 点击我想要这样的animation: (图像打开)书籍封面打开,相关的活动/片段在animation中轻松打开,全屏。 有什么想法吗 ? 在厨房应用程序iOS,厨师应用程序的链接发生类似的事情: https : //itunes.apple.com/us/app/cook/id687560846?mt = 8 PS:我已添加animation,gif将在完全加载后不间断运行。

Android – >如何animation到新位置

这是简单的xml androidanimation: 我想将animation对象从屏幕中心移动到0,0位置。 我是如何制作它的(它应该适用于所有屏幕分辨率) 我的答案: 谢谢你们的帮助。 但我已经通过其他方式动态地修复了我的问题,没有xml。 这是这个方法的完整代码: public void replace(int xTo, int yTo, float xScale, float yScale) { // create set of animations replaceAnimation = new AnimationSet(false); // animations should be applied on the finish line replaceAnimation.setFillAfter(true); // create scale animation ScaleAnimation scale = new ScaleAnimation(1.0f, xScale, 1.0f, yScale); scale.setDuration(1000); // create translation animation […]

Android查看animation和硬件图层

我目前正在尝试在animation视图时弄清楚如何正确使用硬件层 。 我正在实现一个ViewGroup,它允许用户拖动子视图,之后我将它设置为释放时的位置(如ViewPager将如何在页面上定位)。 本文指出您应该只在animation期间启用硬件层。 我遇到的问题是,在启用硬件层后,Android必须创建层,在Galaxy Nexus上需要70-100ms。 这意味着我无法在开始animation之前立即执行此操作,因为拖动和animation之间的延迟会非常明显。 出于同样的原因,我也无法在启动拖动时启用它。 现在,这种延迟仅在第一次创建硬件层时出现,因此理想情况下,我希望在将视图添加到布局后立即创建它们。 我一直指向View.buildLayer() ,但我不确定如何处理这个问题。 实现这一目标的正确方法是什么? 我的ViewGroup中是否有任何方法可以覆盖并在子视图上调用buildLayer()? 硬件层能否以某种方式失效,导致另外70-100ms的延迟? 我该如何处理?