属性动画

动画的种类

  1. 平移
  2. 透明
  3. 旋转
  4. 缩放
  5. 帧动画

动画的设计考虑

  1. 面向用户为开发者,因此API尽量简单
  2. 一个View有多个动画,但同时只能由一个运行
  3. 动画执行不能依赖于自身for循环
  4. 如何让动画动起来

动画任务

  1. 控件
  2. 时长
  3. 起始值
  4. 差值器

在属性动画初始化的的过程中

  1. 创建ObjectAnimator对象,保存控件及属性名,
  2. 设置关键帧的值,创建PropertyValueHolder, 通过KeyframeSet的ofInt方法将动画分解成不同的关键帧
  3. 创建关键帧,Keyframe保存了关键帧的mFraction比例,值没Value及值类型mValueType
  4. 估值器的设置,是用来计算关键帧之间具体的值,
  5. 差值器的设置是修改某个时间点动画的百分比

自定义控件开发思路

  1. 观察有哪些动画
  2. 哪些元素比较特别,后面有没有可能变更需求
  3. 看是否有事件交互
  4. 如何设置自定义控件较为合理