插值器(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 | 运动到终点后,冲过终点后再回弹 |
若是系统提供的插值器不能满足你的业务需求,那么也是可以自己定义一部分属性的:
<accelerateInterpolator>
android:factor Float型,加速度值(默认是1)
<anticipateInterpolator>
android:tension Float型,张力的值(默认是2)。可以理解为来回弹的幅度
<anticipateOvershootInterpolator>
android:tension Float型,张力的值(默认是2)
android:extraTension Float型,张力的倍数(默认是1.5)
<cycleInterpolator>
android:cycles Integer型,周期的数目(默认是1)
<decelerateInterpolator>
android:factor Float型,减速度(默认是1)
<overshootInterpolator>
android:tension Float型,张力的值(默认是2)
通过xml实现的方式:
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1500"
android:fromXDelta="0"
android:fromYDelta="0"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:toXDelta="300"
android:toYDelta="300"></translate>
通过java代码实现的方式:
animation.setInterpolator(new AccelerateDecelerateInterpolator());
viewBtn.startAnimation(animation);
AccelerateDecelerateInterpolator
AccelerateDecelerateInterpolatorDecelerateInterpolator
DecelerateInterpolator.gifAnticipateInterpolator
AnticipateInterpolatorBounceInterpolator
BounceInterpolatorLinearInterpolator
LinearInterpolatorOvershootInterpolator
OvershootInterpolatorCycleInterpolator
CycleInterpolatorAccelerateInterpolator
AccelerateInterpolatorAnticipateOvershootInterpolator
AnticipateOvershootInterpolator以上就是视图动画的学习总结,总结出来可能有遗漏或者错误,欢迎指正个人总结。转载请注明出处http://www.jianshu.com/p/1b9cc1e658af
网友评论