我正在试图找到一个ObjectAnimator可以动画的属性列表,以及它是如何使它们动画的。
例如,我想知道translationY属性是如何动画的。这个值是要坐标还是距离?
发布于 2016-05-12 17:04:54
实际上,ObjectAnimators会在名字前面用"set“动画化任何东西。所以在视图的例子中有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) --这将收缩或增长基于数据透视点的视图,如上文所述。值为"1.0f“将使其正常大小。任何小于"1“的东西都会缩小它,任何超过"1”的东西都会使它生长。
https://stackoverflow.com/questions/37193197
复制相似问题