上一篇文章我们分析了ObjectAnimator的使用方法,这篇文章我们将分析ValueAnimator的使用方法。如果还不会使用ObjectAnimator的朋友可以看一下Android属性动画-Property Animation(二) 使用ObjectAnimator完成动画

在Android属性动画-Property Animation(一) 原理分析那篇文章中我们提到过,使用ValueAnimator的话必须要实现ValueAnimator.AnimatorUpdateListener接口,并且要在onAnimationUpdate()方法中手动更新属性值,并且调用invalidate()方法重画。

我们直接看一个例子


有了前面的基础,这个例子已经非常容易理解了。 不知道大家是否还有印象,在第一篇文章中我们说过,Evaluator是用来计算属性值的,它有IntEvaluator、FloatEvaluator、ArgbEvaluator、和TypeEvaluator,其中前三个都非常好理解,都是计算对应类型数据的属性。而最后一个TypeEvaluator,是由我们自定义类型的,这个类型需要自己实现一个Bean实体类,还是直接看一个例子

首先,我们要创建一个封装了机器人横纵坐标的实体类 接着,是MainActivity 当然,也可以这样写 这两种写法是完全一样的。
注意:我想我还是有必要再强调一下,在ValueAnimator.AnimatorUpdateListener接口中我们重写了onAnimationUpdate()方法,在这个方法中我们修改了属性的值,我们需要调用Invalidate()方法来重画更新过属性值的视图。那为什么我们在上面例子中没有调用invalidate()方法呢,那是因为我们调用的setX()、setScaleY()等函数时,系统已经帮我们写好了invalidate()方法,不用我们自己再去调用了,但如果是我们自己写的setter方法,那一定要记得调用invalidate(),否则视图不会更新的,动画也不会动的!
最后附上一张Interpolators表格,系统自带的这些interpolators已经够我们用得了,基本没有机会让我们自己去写一个。
ValueAnimator我们已经分析完了,下一篇文章我们将分析如何使用AnimatorSet实现动画组合,如何给动画加监听,以及如何使用XML实现属性动画。

更多相关文章

  1. Unity与Android交互
  2. Android(安卓)studio MAC和window 个人常用快捷键
  3. Android(安卓)笔试/面试,常见问题整理
  4. Android属性动画ObjectAnimator源码简单分析
  5. Android下调用传感器
  6. Android(安卓)数据存储(二) 文件的使用
  7. Android(安卓)数据保存
  8. Android中android:visibility的3中属性的剖析
  9. 短视频直播源码Android关于分屏的知识总结

随机推荐

  1. Windows下使用性能监视器监控SqlServer的
  2. SqlServer 2000、2005分页存储过程整理第
  3. 和表值函数连接引发的性能问题分析
  4. 在SQL Server中将数据导出为XML和Json的
  5. sql server中Select count(*)和Count(1)
  6. SQL Server中使用SQL语句实现把重复行数
  7. SQL Server中统计每个表行数的快速方法
  8. Sql Server中的事务介绍
  9. Sql Server中的视图介绍
  10. SQL Server数据库中的存储过程介绍