上一篇文章我们分析了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已经够我们用得了,基本没有机会让我们自己去写一个。 Android属性动画-Property Animation(三) 使用ValueAnimator完成动画_第1张图片
ValueAnimator我们已经分析完了,下一篇文章我们将分析如何使用AnimatorSet实现动画组合,如何给动画加监听,以及如何使用XML实现属性动画。



更多相关文章

  1. Android属性动画ObjectAnimator源码简单分析
  2. 安卓布局文件中控件的各种属性的含义
  3. 日历视图的XML属性
  4. Android锁定横竖屏、splash,全屏、去除标题的方法-网摘
  5. android 中activity 属性说明
  6. 【Android进阶】android:configChanges属性总结
  7. Android中设置控件透明度的方法
  8. Android中shape属性详解:(设置圆角、设置渐变)

随机推荐

  1. Unity游戏引擎向独立Android和iOS开发者
  2. Android HttpUrlConnection 发送Post请求
  3. Android弹出异常dialog源码分析
  4. 关于 android:sharedUserId="android.uid
  5. Android中隐藏顶部状态栏:
  6. 【android】可放大缩小图片位置点击位置
  7. Android -- Wifi连接流程分析
  8. MMS发送流程 Android2.2
  9. android 颜色搭配表
  10. 19个实用的Android开发工具