我正在尝试查找 ObjectAnimator 可以设置动画的属性列表以及它如何设置动画。
例如,我想知道 translationY 属性是如何设置动画的。该值是要坐标还是距离?
最佳答案
ObjectAnimators
实际上会为名称前面带有“set”的任何内容设置动画。所以在 View 的情况下有 setX(float)
, setY(float)
, setZ(float)
, setTranslationX(float)
, 等等。
同样,如果您创建一个具有自己属性的自定义 View ,则只需使用 set____(type)
使用 ObjectAnimator
的语法无需额外工作。
基本上他们所做的只是以重复的间隔调用这些方法,其值由 TimeInterpolator
确定设置为 Animator
.
编辑:
有很多属性可以在 View 上设置动画,但这里是对更常见的属性的描述。
setX/Y(float)
- 这会将 View 动画化为父级的精确 X 或 Y 坐标 View
它包含在其中。像素坐标从 (0,0)
开始。在左上角和(getWidth(), height())
在右下角。 setY(float)
将调整 getTop()
View 和 setX(float)
将调整 getLeft()
的观点。
setTranslationX/Y(float)
- 这将使 View 动画到 View
的相对位置到起点所在的地方。因此,例如,如果 View 的 getLeft()
返回 50,然后当您调用 setTranslationX(25)
时会将 View 向右移动 25 个像素到第 75 个像素。同样,setTranslationY(25)
会将 View 向下移动 25 像素。负值将分别向左和向上移动。
setRotation(float)
- 这将旋转 View
围绕由 setPivotX(float)
定义的给定枢轴点和 setPivotY(float)
.默认情况下,枢轴点位于坐标 (0,0)。您可以通过执行以下操作将其设置为中心:
View viewToAnimate = getViewToAnimate();
float width = viewToAnimate.getWidth();
float height = viewToAnimate.getHeight();
viewToAnimate.setPivotX(width/2);
viewToAnimate.setPivotY(height/2);
setScaleX/Y(float)
- 如上所述,这将根据枢轴点缩小或增大 View 。 “1.0f”的值将使其成为正常大小。任何小于“1”的东西都会缩小,任何大于“1”的东西都会让它变大。
关于android - ObjectAnimator 动画属性列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37193197/