我试图找到ObjectAnimator可以设置动画的属性列表以及它如何为它们设置动画。
例如,我想知道translateY属性是如何动画的。值是坐标还是距离?
答案 0 :(得分:2)
ObjectAnimators
实际上会在名称前面以“set”为动画制作动画。因此,对于View,setX(float)
,setY(float)
,setZ(float)
,setTranslationX(float)
等等。
同样,如果您创建的自定义视图具有自己的属性,那么只需使用set____(type)
语法就可以使用ObjectAnimator
,而无需额外的工作。
基本上他们所做的只是在重复的时间间隔调用这些方法,其值由TimeInterpolator
设置为Animator
确定。
编辑:
有许多属性可以在视图上设置动画,但这里是对更常见的属性的描述。
setX/Y(float)
- 这会将视图设置为包含它的父View
的精确X或Y坐标。像素坐标从左上角的(0,0)
开始角落和右下角的(getWidth(), height())
。 setY(float)
会调整视图的getTop()
,setX(float)
会调整视图的getLeft()
。
setTranslationX/Y(float)
- 这会将视图设置为View
到起点所在位置的相对位置。例如,如果视图的getLeft()
返回50,那么当您调用setTranslationX(25)
时,会将视图向右移动25像素到像素75.同样,setTranslationY(25)
会将视图向下移动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)
- 这将基于如上所述的Pivot点缩小或增大View。值“1.0f”将使其正常大小。任何小于“1”的东西都会缩小它,任何超过“1”的东西都会使它增长。