@ -6,7 +6,7 @@
1. 三种动画
2. 插值器、估值器
3. 动画源码
3. 实现原理
#### 三种动画
@ -20,3 +20,8 @@
自定义插值器更简单,只需要实现 TimeInterpolator 或 Interpolator,系统也内置了几种实现,默认是先加速后减速,即 AccelerateDecelerateInterpolator,看一下源码发现不过是余弦函数在 pi/2 到 pi 直接,也就是先加速后减速。
#### 实现原理
补间动画的实现是在 View 的 draw 方法里,会去调用 TranslateAnimation 等的 applyTransformation 方法,这个方法其实就是对 View 矩阵进行变换。
属性动画是在其内部创建一个 AnimationHandler,这个 AnimationHandler 有三个 ArrayList,分别表示活动动画、下一帧动画以及延时动画。它里面通过注册一个 Choreographer 回调去真正的执行动画。