-
属性动画是什么?
属性动画(Property Animation)是在API 11之后推出的,相比于API 11之前的Tween Animation和Frame Animation,属性动画功能更加强大,效果也更丰富。
属性动画作为一个健壮的框架,它几乎允许对于任何Object做动画。无论对象有没有绘制到屏幕上,你可以定义一个属性动画来随着时间变化改变对象属性,属性动画可以在一个指定的时间长度内改变对象属性的中一个字段值,属性动画允许你定义以下几个动画的特点:
**Duration: **定义动画时长,默认是300 ms。
Time interpolation: 时间插值器,它可以指定属性值如何随时间变化的,反应了动画的运动速率。
Repeat count and behavior: 指定当动画结束时是否重复动画以及动画重复多少次,还可以设置反向播放动画,播放到达指定次数后动画结束。
Animator sets: 把一组动画聚在一起,顺序播放或者同时播放或者延迟播放。
**Frame refresh delay: **指定刷新动画帧的频率,默认时间是10ms,但是刷新频率最终取决于系统是否繁忙以及系统服务底层计时器的快慢。
Animator类提供了创建动画的基本组成,通常不直接使用这个类而是用ValueAnimator和ObjectAnimator来创建属性动画。
-
Animator
Animator类的继承关系:
animator.png
类 |
描述 |
ValueAnimator |
ValueAnimator是整个属性动画机制当中最核心的一个类。它使用一种时间循环的机制来计算值与值之间的动画过渡,负责管理动画的播放次数、播放模式、设置动画设置监听器、设置自定义类型等。有两块动画属性:计算动画值和设置这些对象或属性的动画。ValueAnimator不执行第二个,所以你必须设置ValueAnimator更新值和修改对象的监听。 |
ObjectAnimator |
ValueAnimator的一个子类,ObjectAnimator可以对任意对象及对象属性设置动画。通常情况下,使用ObjectAnimator更多一些因为它使目标对象动画过程更简单,然而因为ObjectAnimator有更多的限制,有时候使用ValueAnimator更合理一些,比如需要特定的acessor方法出现在目标对象。 |
AnimatorSet |
把一组动画聚在一起,顺序播放或同时播放或延迟播放。 |
-
Evaluators
Evaluators来告诉系统对于一个给定的属性如何来计算它的值,它们获得Animator提供的数据(动画起始值和结束值),并根据这些数据来计算动画值。
- ** Interpolators**
Interpolator是时间插值器,用来修饰动画效果,它可以指定属性值如何随时间变化的,反应了动画的运动速率,运动速率可以是线性变化的(如匀速)也可以是非线性变化的(如加速、减速)。
下一篇:Android 属性动画Property Animation(中)