Interpolator
翻译为插值器。
下面是Interpolator
的类图:
Interpolator
接口只有一个方法float getInterpolation(float input)
。
我们知道,动画是必须要设置一个时间段。Animation
和Animator
都有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]
, 但是值域为[-∞,+∞]
。