Android属性动画(二) ------ 站在巨人的肩膀上学习总结

属性动画的高级用法

详情请看,郭林大神博客 http://blog.csdn.net/guolin_blog/article/details/43536355

前奏:TypeEvaluator

    TypeEvaluator的作用就是告诉系统如何从初始值过渡到结束值,不管是ValueAnimator还是ObjectAnimator的
    ofFloat()方法,其实他的内部系统内置了一个FloatEvaluator,从而实现初始值过渡结束值,FloatEvalutor的代码
        public class FloatEvaluator implements TypeEvaluator {  
            public Object evaluate(float fraction, Object startValue, Object endValue) {  
                float startFloat = ((Number) startValue).floatValue();  
                return startFloat + fraction * (((Number) endValue).floatValue() - startFloat);  
            }  
        }  


    总结:FloatEvaluator实现了TypeEvalutor接口,重写evaluate()方法,该方法的三个参数  
        1,fraction 非常重要 表示动画的完成度,根据它计算当前动画的值应该是多少
        2,起始值  3,结束值

        当前动画值 = (结束值 - 起始值)*fraction +起始值

一:ValueAnimator的高级用法

        ValueAnimator和ObjectAnimator的ofFloat(),ofInt()方法,分别是对浮点型和整形数据进行动画的操作,但是他们还有一个ofObject()方法
    这个方法是对任意一个对象信息动画的操作,对象的动画操作很复杂,因为系统不知道如何从初始对象到结束对象,
    所以现在我们需要自定一个MyEvaluator实现TypeEvaluator 从而可以告知系统如何进行过度(自定义Evaluator实现过度,很重要哦)

    如何使用?
        ValueAnimator anim = ValueAnimator.ofObject(new MyPointEvaluator(), point1, point2);  
        anim.setDuration(5000);  
        anim.start();   //如此,开始对象动画

二:ObjectAnimator的高级用法

    补间动画只能实现四种动画效果,功能很死,没有扩展性可言, 比如我们想让View进行颜色的动态改变,只能通过属性动画实现

    ObjectAnimator内部工作机制通过get和set来确定寻找的属性,然后自定义ColorEvaluator,然后调用即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值