Android 动画之插值器

我们之前定义的动画中,不管是缩放、渐隐渐现还是移动,他们的变化的速率都是相同的,如果我们想指定他们变化的速率,不让他们匀速变化,我们就需要使用到插值器(Interpolator)。Interpolator是一个叫接口,系统为我们实现了许多插值器的类。

  • AccelerateDecelerateInterpolator 加速减速插值器, 表示在开始和结束的时候速率比较慢,在中间的时候加速。也就是说,如果对一个旋转动画使用了该插值器,在启动动画时,会旋转的越来越快,经历过中间峰值时,又会逐渐变慢。
  • AccelerateInterpolator 加速插值器,表示在动画开始的时候速率比较慢,然后逐渐加速。
  • DecelerateInterpolator 减速插值器,表示动画在开始的一瞬间减速到最大值,然后逐渐减速。
  • LinearInterpolator 线性插值器,也称匀速插值器,表示在动画过程中, 变化是匀速的。
  • BounceInterpolator 弹跳插值器,模拟了控件自由落地后,然后回弹的效果。
  • AnticipateInterpolator 初始偏移值插值器,表示开始的时候向前偏移一段距离然后应用动画。
  • OvershootInterpolator 结束偏移插值器,表示在动画结束时,会沿动画方向继续运动一段时间后,再结束动画。
  • AnticipateOvershootInterpolator 是AnticipateInterpolator和OvershootInterpolator的结合体。
  • CycleInterpolator 循环插值器,表示动画循环播放特定的次数,速率沿正弦曲线改变。
以下是几种插值器的使用效果图

加速减速插值器

加速减速.gif

加速插值器

加速插值器.gif

减速插值器

减速插值器.gif

线性插值器

线性插值器.gif

弹跳插值器

弹跳.gif

初始偏移值插值器

初始偏移值插值器.gif

结束偏移插值器

Untitled.gif

AnticipateOvershootInterpolator

13.gif

循环插值器

Untitled.gif

Guess you like

Origin juejin.im/post/7053711241226747918