Animator最早出现在Android 3.0 中,和之前的Animation框架相比,Animator更加的灵活并且具有更多的功能,官方推荐使用Animator代替Animation。
使用Animator前需要先了解几个属性:
- Duration:动画播放时间
- Time interpolation:属性值随着时间的改变情况,比如线性增长或者先快后慢
- Repeat count:动画重复播放次数
- Animator sets:动画集,可以使多个动画同时播放或者顺序播放
- Frame refresh delay:动画每一帧的刷新时间,一般默认10ms刷新一次
Property Animation
Property Animation非常强大,他可以让你几乎在任何东西上播放动画。Property Animation的结构如下图:
ValueAnimator用来跟踪动画运行的时间和属性的值。其中TimeInterpolator指定了动画的 interpolation,如AccelerateDecelerateInterpolator。TypeEvaluator指定属性的值如何计算比如IntEvaluator.
Property Animation与View Animation的区别
- View Animation只能对View添加动画
- View Animation只能改变如scale、rotation等值,不能改变background color等属性
- View Animation改变的只是View画的位置,并不是真正的View,比如一个button从左到右移动,触发onClick方法的位置还是初试的位置。
- View Animation实现起来比Property Animation简单
Animator
Animator提供了创建动画的基本结构,通常我们不直接使用它,而是使用它的子类。
ValueAnimator
使用ofInt(), ofFloat(), 或者 ofObject()方法来获得ValueAnimator实例
ValueAnimator animation = ValueAnimator.ofFloat(0f, 1f);
animation.setDuration(1000);
animation.start();
当然也可以