ObjectAnimator 动画属性列表
List of ObjectAnimator animation properties
我正在尝试查找 ObjectAnimator 可以设置动画的属性列表以及它如何设置动画。
例如,我想知道 translationY 属性 是如何制作动画的。该值是要坐标还是距离?
ObjectAnimators
实际上会为名称前面带有 "set" 的任何内容设置动画。因此在 View 的情况下有 setX(float)
、setY(float)
、setZ(float)
、setTranslationX(float)
等。
同样,如果您创建一个具有自己属性的自定义视图,则只需使用 set____(type)
语法即可在其上使用 ObjectAnimator
,无需额外的工作。
基本上他们所做的只是以重复的间隔调用这些方法,其值由设置为 Animator
的 TimeInterpolator
确定。
编辑:
有很多属性可以在 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”的东西都会让它变大。
我正在尝试查找 ObjectAnimator 可以设置动画的属性列表以及它如何设置动画。
例如,我想知道 translationY 属性 是如何制作动画的。该值是要坐标还是距离?
ObjectAnimators
实际上会为名称前面带有 "set" 的任何内容设置动画。因此在 View 的情况下有 setX(float)
、setY(float)
、setZ(float)
、setTranslationX(float)
等。
同样,如果您创建一个具有自己属性的自定义视图,则只需使用 set____(type)
语法即可在其上使用 ObjectAnimator
,无需额外的工作。
基本上他们所做的只是以重复的间隔调用这些方法,其值由设置为 Animator
的 TimeInterpolator
确定。
编辑:
有很多属性可以在 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”的东西都会让它变大。