Android动画的灵魂舞曲(三)

插值器(Interpolator)

在之前的章节,我们已经对动画已经有了一部分的了解了。那么这里我们要先讲讲插值器(Interpolator)。以加深我们对动画的理解。

以下是给动画添加系统的插值器的资源id:

Interpolator class Resource ID
AccelerateDecelerateInterpolator @android:anim/accelerate_decelerate_interpolator
AccelerateInterpolator @android:anim/accelerate_interpolator
AnticipateInterpolator @android:anim/anticipate_interpolator
AnticipateOvershootInterpolator @android:anim/anticipate_overshoot_interpolator
BounceInterpolator @android:anim/bounce_interpolator
CycleInterpolator @android:anim/cycle_interpolator
DecelerateInterpolator @android:anim/decelerate_interpolator
LinearInterpolator @android:anim/linear_interpolator
OvershootInterpolator @android:anim/overshoot_interpolator

而对于每个插值器的能够带来的效果:

Interploator class decription
AccelerateDecelerateInterpolator 开始和结束缓慢,中间加速
AccelerateInterpolator 开始的时候缓慢,之后开始加速
AnticipateInterpolator 开始的时候向后甩一下,然后向前
AnticipateOvershootInterpolator 开始的时候向后甩一下,然后加速向前甩过终点一点后回到原点
BounceInterpolator 动画结束的时候小距离的时候在终点处弹起
CycleInterpolator 将重复周期的指定数目的动画。变化率遵循正弦模式。
DecelerateInterpolator 开始的时候快,结束的时候慢
LinearInterpolator 以常量速率变化
OvershootInterpolator 运动到终点后,冲过终点后再回弹

若是系统提供的插值器不能满足你的业务需求,那么也是可以自己定义一部分属性的:

android:factor Float型,加速度值(默认是1)

android:tension Float型,张力的值(默认是2)。可以理解为来回弹的幅度

android:tension Float型,张力的值(默认是2)
android:extraTension Float型,张力的倍数(默认是1.5)

android:cycles Integer型,周期的数目(默认是1)

android:factor Float型,减速度(默认是1)

android:tension Float型,张力的值(默认是2)

通过xml实现的方式:


通过java代码实现的方式:

animation.setInterpolator(new AccelerateDecelerateInterpolator());
viewBtn.startAnimation(animation);
AccelerateDecelerateInterpolator
Android动画的灵魂舞曲(三)_第1张图片
AccelerateDecelerateInterpolator
DecelerateInterpolator
Android动画的灵魂舞曲(三)_第2张图片
DecelerateInterpolator.gif
AnticipateInterpolator
Android动画的灵魂舞曲(三)_第3张图片
AnticipateInterpolator
BounceInterpolator
Android动画的灵魂舞曲(三)_第4张图片
BounceInterpolator
LinearInterpolator
Android动画的灵魂舞曲(三)_第5张图片
LinearInterpolator
OvershootInterpolator
Android动画的灵魂舞曲(三)_第6张图片
OvershootInterpolator
CycleInterpolator
CycleInterpolator
AccelerateInterpolator
Android动画的灵魂舞曲(三)_第7张图片
AccelerateInterpolator
AnticipateOvershootInterpolator
Android动画的灵魂舞曲(三)_第8张图片
AnticipateOvershootInterpolator

以上就是视图动画的学习总结,总结出来可能有遗漏或者错误,欢迎指正个人总结。转载请注明出处http://www.jianshu.com/p/1b9cc1e658af

你可能感兴趣的:(Android动画的灵魂舞曲(三))