Interpolator

Interpolator翻译为插值器。

下面是Interpolator的类图:

Interpolator接口只有一个方法float getInterpolation(float input)

我们知道,动画是必须要设置一个时间段。AnimationAnimator都有setDuration(long duration)方法, 在这段时间内,系统会每隔10ms一次,调用一次float getInterpolation(float input)方法。假设已经过去的时间为x,那么input=x/duration,所以,input这个参数的意思就是,动画已经执行了的时间百分比。float getInterpolation(float input)返回值的意义是动画值已经改变了的百分比,比如平移动画,从100px移动到200px,那么这个返回值的意义就是 这100px的距离,已经移动了的距离的百分比。

所以float getInterpolation(float input)方法用数学函数表达就是input的范围在[0, 1], 但是值域为[-∞,+∞]