注:本文结合《Android动画分析(ValueAnimator)》一文阅读效果更佳
在构建动画插值器的时候出现了数据明显的跳动,怀疑和底层源码有关系:
设置一系列的动画帧值:
将这些关键帧值转换成KeyframeSet对象,按照时间保存键值对:
根据fraction取值,在fraction≥1时将直接去KeyframeSet的最后值,并且fraction不会保证一定会达到取值区间的两端,这个是数据跳动的根本原因!!
否则就会在区间对比(会用到Interpolator插值器)并取值
估值器会根据动画器给的值来计算出一个值,抖动的数据也会传递进来!
因此需要保存fraction=1的上一帧的数据,并重新计算出结果值返回出去!
解决后的插值器: