属性动画

属性动画

    就是增强版补间动画,他强大在:

        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()方法启动动画.


转载于:https://my.oschina.net/Ccx371161810/blog/284896

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值