22.3属性动画
属性动画(Property Animation)系统是一个健壮的动画框架系统,它可以满足你大部分动画需求。不管动画对象是否已经绘制到屏幕上,都可以在动画执行过程中改变它任意的属性值。一个属性动画会在一段特定长度的时间内改变一个属性(一个对象中的字段)的值。
可以通过以下几步定义一个动画:指定你要执行动画的属性,比如动画对象(View)在屏幕上的位置,指定执行时长,指定你希望的属性的变化值。
相关属性:
Duration动画的持续时间,默认300ms。
Time interpolation:时间差值,定义动画的变化率。
Repeat count and behavior:重复次数、以及重复模式;可以定义重复多少次;重复时从头开始,还是反向。
Animator sets: 动画集合,你可以定义一组动画,一起执行或者顺序执行。
Frame refresh delay:帧刷新延迟,对于你的动画,多久刷新一次帧;默认为10ms,但最终依赖系统的当前状态;基本不用管。
相关的类:
ObjectAnimator :对象动画执行类。
ValueAnimator :值动画执行类,常配合AnimatorUpdateListener使用。
PropertyValuesHolder : 属性存储器,为两个执行类提供更新多个属性的功能。
Keyframe :为PropertyValuesHolder提供多个关键帧的操作值。
AnimatorSet :一组动画的执行集合类:设置执行的先后顺序,时间等。
AnimatorUpdateListener :动画更新监听。
AnimatorListener :动画执行监听,在动画开始、重复、结束、取消时进行回调。
AnimatorInflater :加载属性动画的xml文件。
TypeEvaluator :类型估值,用于设置复杂的动画操作属性的值。
TimeInterpolator :时间插值,用于控制动画执行过程。
属性动画从Android3.0,也就是从API11才开始有的,如果在这之前的版本上实现属性动画功能,可采用nineoldandroids这个三方库实现。