属性动画二--ValueAnimator

查看ObjectAnimator的源码,会发现其实是继承自ValueAnimator,是ValueAnimator的一个封装。

ValueAnimator本身并不响应动画,也不能控制属性,它是一个数值发生器,产生动画过程中的各种数值,

将这些数值作用于控件属性,使整个动画过程能够精确地完成

下面这个小例子中,ValueAnimator 使int的数值在5000ms中由0变化到100,并且我们设置了数值变化的监听事件

每次数值变化的时候我们都在button上打印输出,注意,在没有设置插值器的时候,这里的int是均匀变化的

ValueAnimator animator=ValueAnimator.ofInt(0,100);
animator.setDuration(5000);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator animation) {
        Integer value= (Integer) animation.getAnimatedValue();
        button.setText(""+value);
    }
});
animator.start();


我们也可以调用ValueAnimator.ofObject()方法实现自定义的数值生成器
 ValueAnimator animator=ValueAnimator.ofObject(new TypeEvaluator() {
     @Override
     /**
      *fraction是一个 0-1 的时间因子,结合startValue和endValue以及各种计算方式(如各种插值器)
      * 就可以生成各种各样的想要的数值序列
      */
     public Object evaluate(float fraction, Object startValue, Object endValue) {
         return null;
     }
 });
 animator.start();

以上内容 整理自慕课网


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值