TypeEvaluator 和 TimeInterpolator
本文看看 TypeEvaluator 和 TimeInterpolator 的源码。
首先来看一下Choreographer
Android系统从4.1(API 16)开始加入 Choreographer 这个类来控制同步处理输入(Input)、动画(Animation)、绘制(Draw)三个UI操作。其实UI显示的时候每一帧要完成的事情只有这三种。Choreographer接收显示系统的时间脉冲(垂直同步信号-VSync信号),在下一个frame渲染时控制执行这些操作。Choreographer中文翻译过来是”舞蹈指挥”,字面上的意思就是优雅地指挥以上三个UI操作一起跳一支舞。这个词可以概括这个类的工作,如果android系统是一场芭蕾舞,他就是Android UI显示这出精彩舞剧的编舞,指挥台上的演员们相互合作,精彩演出。
而属性动画的每一帧数据计算就来自于 Choreographer .
看一下 TypeEvaluator:
TypeEvaluator 为类型估值器,它根据当前已执行时间占总时间的比值来计算新的属性值。
|
|
要点:
1.泛型参数 T ,代表了动画行径中的动画进度之的类型.
2.只有一个方法 evaluate 根据 fraction 计算动画的进度值.
关键之处是 Animator 对象是如何和 TypeEvaluator 起作用的。