android Animator和Animation有什么区别?

1tu0hz3e  于 2024-01-04  发布在  Android
关注(0)|答案(2)|浏览(206)

看起来AnimationsAnimators都允许我对对象的属性(位置、不透明度、缩放、旋转等)进行动画处理,我很难区分两者的用例。什么时候应该使用animator还是animation,反之亦然?

bqf10yzr

bqf10yzr1#

AnimationsAnimators的旧版本。Animators在3.0中引入,以帮助克服Animations的一些缺点。
Animations只改变对象的视觉表示。如果你只是改变不透明度,这是可以的,但是当你平移,旋转或缩放对象时,它会导致问题。在Animators之前的旧时代,如果你平移对象,你必须用新的坐标重新布局。这可能相当困难,具体取决于对象移动的位置。
另一方面,动画师改变对象的物理属性。这意味着,如果您将View移动到新位置,触摸坐标将Map到新位置,而无需任何其他干预。
就我个人而言,我不再使用Animations了,除非我在API的2.3或更低版本上开发。谢天谢地,这已经不是一个问题了。还有一些旧的类仍然使用Animations API,特别是当涉及到使用XML资源时,比如android.support.v4.app.FragmentTransaction类(普通的FragmentTransaction支持Animators)。

eqfvzcg8

eqfvzcg82#

一个Animation对象动画视图的图像。例如,如果你使用这个,在屏幕上移动一个按钮,你将不能在新的可见位置点击它,因为它没有真正移动,而只是他的位图表示被转换。你也不能改变它的比例,因为你正在修改位图。如果你使用xml文件,把它们放在anim文件夹中。
一个Animator对象动画化视图的属性(如边距或宽度)。如果你用它在屏幕上移动一个按钮,你能够在新的可见位置捕获点击。如果你使用xml文件,将它们放在animator文件夹中。
如果你只需要修饰效果,比如淡入或小的外观转换,使用Animation会更有效,因为它不会调用layout()measure()方法。如果你确实需要捕获像点击事件这样的动作,使用Animator

相关问题