1 插值器(Interpolator)简介
插值器(Interpolator)是设置动画运行过程中的变化规律,类似匀速变化,加速变化,回弹等。
补间动画Animation设置插值器的两个函数:
public void setInterpolator(Context context, @AnimRes @InterpolatorRes int resID) ;
public void setInterpolator(Interpolator i) ;
xml动画配置文件中设置插值器代码:
android:interpolator="@android:anim/linear_interpolator"
上面的setInterpolator函数和 android:interpolator属性就是设置动画的插值器。
实际使用动画过程中,有时可能不完全都是要求动画匀速运动,类似加速运动,仿抛物线运动等,都需要插值器的配合。
2系统提供的默认插值器
可以看到除了BaseInterpolator(抽象类,不讨论)外有10种系统提供的插值器。下面从xml中引用插值器的字段和插值器对应的具体类和插值器的作用三方面来介绍系统提供的插值器。
@android:anim/linear_interpolator 对应 LinearInterpolator
作用:动画匀速改变
@android:anim/decelerate_interpolator 对应 DecelerateInterpolator
作用:动画运行越来越慢,减速运行 ,说明开始的时候是最高速。
@android:anim/accelerate_interpolator 对应 AccelerateInterpolator
作用:动画加速进行,动画开始运行时变化很慢,越到后面越快,最后突然结束。
@android:anim/accelerate_decelerate_interpolator 对应java类AccelerateDecelerateInterpolator
作用 :动画先加速再减速,相当于view速度从0一直加速,最后又减速到0,默认插值器。
@android:anim/anticipate_interpolator 对应 AnticipateInterpolator
作用:先退后再加速前进 ,类似投掷标枪,先往后一点,然后加速运行。
@android:anim/anticipate_overshoot_interpolator 对应java类AnticipateOvershootInterpolator
作用:先退后再加速前进,超出终点后再回终点
@android:anim/bounce_interpolator 对应 BounceInterpolator
作用:最后阶段弹球效果,就是会在到达终点后,类似弹球回弹几次。
@android:anim/cycle_interpolator 对应CycleInterpolator
作用:周期运动,动画可以不到终点就回弹,也可以到了终点后在回弹&