属性动画系统支持为视图对象添加经过简化的动画,与视图动画系统相比,它具有一定的优势。视图动画系统通过更改绘制视图对象的方式来转换视图对象。这是在每个视图的容器中处理的,因为视图本身没有可操控的属性。这会导致视图在表面上添加了动画效果,但视图对象本身没有任何变化。这会产生不好的效果,例如,某个对象已经在屏幕的其他位置绘制,但它仍位于其原始位置。在 Android 3.0 中,我们添加了新的属性以及相应的 getter 和 setter 方法来消除此缺陷。

属性动画系统可以通过更改视图对象中的实际属性来为屏幕上的视图添加动画效果。此外,当视图的属性发生更改时,视图还会自动调用 invalidate() 方法来刷新屏幕。View 类中有利于属性动画的新属性包括:

translationX 和 translationY:这些属性用于控制视图所在的位置,值为视图的布局容器所设置的左侧坐标和顶部坐标的增量。
rotation、rotationX 和 rotationY:这些属性用于控制视图围绕轴心点进行的 2D( 属性)和 3D 旋转。
scaleX 和 scaleY:这些属性用于控制视图围绕其轴心点进行的 2D 缩放。
pivotX 和 pivotY:这些属性用于控制旋转和缩放转换所围绕的轴心点的位置。默认情况下,轴心点位于对象的中心。
x 和 y:这些是简单的实用属性,用于描述视图在容器中的最终位置,值分别为左侧值与 translationX 值的和以及顶部值与 translationY 值的和。
alpha:表示视图的 Alpha 透明度。此值默认为 1(不透明),值为 0 则表示完全透明(不可见)。
要为视图对象的属性(例如其颜色或旋转值)添加动画效果,您只需创建一个属性 Animator 并指定要添加动画效果的视图属性即可。例如: