ObjectAnimator 动画属性列表

List of ObjectAnimator animation properties

我正在尝试查找 ObjectAnimator 可以设置动画的属性列表以及它如何设置动画。

例如,我想知道 translationY 属性 是如何制作动画的。该值是要坐标还是距离?

ObjectAnimators 实际上会为名称前面带有 "set" 的任何内容设置动画。因此在 View 的情况下有 setX(float)setY(float)setZ(float)setTranslationX(float) 等。

同样,如果您创建一个具有自己属性的自定义视图,则只需使用 set____(type) 语法即可在其上使用 ObjectAnimator,无需额外的工作。

基本上他们所做的只是以重复的间隔调用这些方法,其值由设置为 AnimatorTimeInterpolator 确定。

编辑:

有很多属性可以在 View 上设置动画,但这里是对更常见的属性的描述。

setX/Y(float) - 这会将视图动画化为包含它的父级 View 的确切 X 或 Y 坐标。像素坐标从顶部的 (0,0) 开始-左下角和右下角的 (getWidth(), height())setY(float) 将调整视图的 getTop()setX(float) 将调整视图的 getLeft()

setTranslationX/Y(float) - 这将使视图动画到 View 到起点所在的相对位置。因此,例如,如果 View 的 getLeft() returns 50,那么当您调用 setTranslationX(25) 时,View 将向右移动 25 个像素到第 75 个像素。同样,setTranslationY(25) 将移动视图向下 25 像素。负值将分别向左和向上移动。

setRotation(float) - 这将围绕 setPivotX(float)setPivotY(float) 定义的给定轴心点旋转 View。默认情况下,枢轴点位于坐标 (0,0)。您可以通过执行以下操作将其设置为中心:

View viewToAnimate = getViewToAnimate();
float width = viewToAnimate.getWidth();
float height = viewToAnimate.getHeight();
viewToAnimate.setPivotX(width/2);
viewToAnimate.setPivotY(height/2);

setScaleX/Y(float) - 如上所述,这将根据枢轴点缩小或增大视图。 “1.0f”的值将使其成为正常大小。任何小于“1”的东西都会缩小,任何大于“1”的东西都会让它变大。