属性动画
就是增强版补间动画,他强大在:
1.补间动画只能定义两个关键帧在透明度,旋转,倾斜,位移,4个方面的变化,但属性动画可以定义任何
属性变化。
2.补间动画只能对UI组件执行动画,但属性动画几乎可以对任何对象执行动画.
属性动画需要定义如下属性:
1.动画持续时间:默认为300毫秒,可通过android:duration属性指定.
2.动画差值方式:和补间动画的Interpolator类似.
3.动画重复次数:指定播放次数.
4.重复行为:正向播放或反向播放.
5.动画集:可将多个属性动画合并为一组.
6.帧刷新率:默认为10毫秒.
属性动画的API
1.ValueAnimatior:属性动画主要的时间引擎,它负责计算各个帧的属性值.
// 指定时间进行比在0-1之间变化
ValueAnimator anim = ValueAnimator.ofFloat(0f,1f);
anim.setDuration(1000);
anim.start();
ValueAnimatior仅仅是计算动画过程中变化的值,还没有把这些计算应用到任何对象,因此不会显示任何动画.
如果使用ValueAnimatior创建动画,还需要注册一个监听器:AnimatiorUpdateListener,该监听器负责更新对象
的属性值.
2.ObjectAnimatior:是ValueAnimation的子类,允许程序员对指定对象的属性执行动画.
ObjectAnimator anim = ObjectAnimator .ofFloat(foo,"alpha",0f,1f);
anim.setDuration(1000);
anim.start();
3.AnimatiorSet:它是Animatior的子类,用于组合多个Animatior,并指定多个Animatior是按次序播放,还是
同时播放.
Evaluator(计算器)
用于控制属性动画如何计算属性值,有以下几种:
1.IntEvaluator:计算int类型属性值的计算器.
2.FloatEvaluator:计算Float类型属性值的计算器.
3.ArgbEvaluator:计算以十六进制形式表示的颜色值的计算器.
4.TypeEvaluator:计算器的接口,开发者可以通过实现该接口来实现自定义计算器.
// 指定自定义计算器
ValueAnimator anim = ValueAnimator.obObject(new MyTypeEvaluator(),startVal,endVal);
anim.setDuration(1000);
anim.start();
使用属性动画
1.创建ValueAnimator或者ObjectAnimator对象---既可以从资源文件加载该动画资源,也直接调用
ValueAnimator或者ObjectAnimator的静态工厂方法来创建动画.
2.根据需要为Animator对象设置属性.
3.如果需要监听Animator的动画开始事件,动画结束事件,动画重复事件,动画值改变事件,并根据事件提供
响应处理代码,应该为Animator对象设置监听器.
4.如果有多个动画需要按次序或同时播放,应使用AnimatorSet组合这些动画.
5.调用Animator对象的Start()方法启动动画.