先来张用了12不同插补器的效果图:
图中的序号和下面插入器的序号一致,以方便对照效果选择
1 2 3 4 5 6 7 8 9 10 11 12
| 1:AccelerateDecelerateInterpolator 加速减速插补器(先慢后快再慢) 2:AccelerateInterpolator 加速插补器(先慢后快) 3:AnticipateInterpolator 向前插补器(先往回跑一点,再加速向前跑) 4:AnticipateOvershootInterpolator 向前向后插补器(先往回跑一点,再向后跑一点,再回到终点) 5:BounceInterpolator 反弹插补器(在动画结束的时候回弹几下,如果是竖直向下运动的话,就是玻璃球下掉弹几下的效果) 6:CycleInterpolator 循环插补器(按指定的路径以指定时间(或者是偏移量)的1/4、变速地执行一遍,再按指定的轨迹的相反反向走1/2的时间,再按指定的路径方向走完剩余的1/4的时间,最后回到原点。假如:默认是让a从原点往东跑100米。它会先往东跑100米,然后往西跑200米,再往东跑100米回到原点。可在代码中指定循环的次数) 7:DecelerateInterpolator 减速插补器(先快后慢) 8:LinearInterpolator 直线插补器(匀速) 9:OvershootInterpolator 超出插补器(向前跑直到越界一点后,再往回跑) 10:FastOutLinearInInterpolator MaterialDesign基于贝塞尔曲线的插补器 效果:依次 慢慢快 11:FastOutSlowInInterpolator MaterialDesign基于贝塞尔曲线的插补器 效果:依次 慢快慢 12:LinearOutSlowInInterpolator MaterialDesign基于贝塞尔曲线的插补器 效果:依次 快慢慢
|
使用方法一
1 2 3 4 5 6 7 8 9 10 11 12
| <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true" android:interpolator="@android:anim/accelerate_interpolator">//对当前动画设置插补器 <translate android:duration="2000" android:fromXDelta="50%" android:fromYDelta="0%" android:interpolator="@android:anim/accelerate_interpolator"// 对当前节点设置插补器 android:toXDelta="500%" android:toYDelta="0%" /> </set>
|
使用方法二
1 2 3
| Animation mAnimation = AnimationUtils.loadAnimation(this, R.anim.xxx); mAnimation.setInterpolator(new AccelerateDecelerateInterpolator()); view.startAnimation(mAnimation);
|
原文