1. 程式人生 > >插補器Interpolator配圖詳解

插補器Interpolator配圖詳解

先來張用了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基於貝塞爾曲線的插補器 效果:依次 快慢慢

使用方法一:

<?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>

使用方法二:

Animation mAnimation = AnimationUtils.loadAnimation(this, R.anim.xxx);//引用動畫檔案
mAnimation.setInterpolator(new AccelerateDecelerateInterpolator());//程式碼設定插補器
view.startAnimation(mAnimation);