Android Interpolator屬性 設定動畫速度
阿新 • • 發佈:2019-01-06
Android開發中必定會涉及到動畫方面的效果,那麼就會遇到一個問題,如果控制動畫開始速度,與結束速度。還有其他的一些效果
我們可以在xml裡面設定屬性
android:interpolator="@android:anim/accelerate_interpolator" 設定動畫為加速動畫(動畫播放中越來越快) android:interpolator="@android:anim/decelerate_interpolator" 設定動畫為減速動畫(動畫播放中越來越慢) android:interpolator="@android:anim/accelerate_decelerate_interpolator" 設定動畫為先加速在減速(開始速度最快 逐漸減慢) android:interpolator="@android:anim/anticipate_interpolator" 先反向執行一段,然後再加速反向回來(相當於我們彈簧,先反向壓縮一小段,然後在加速彈出) android:interpolator="@android:anim/anticipate_overshoot_interpolator" 同上先反向一段,然後加速反向回來,執行完畢自帶回彈效果(更形象的彈簧效果) android:interpolator="@android:anim/bounce_interpolator" 執行完畢之後會回彈跳躍幾段(相當於我們高空掉下一顆皮球,到地面是會跳動幾下) android:interpolator="@android:anim/cycle_interpolator" 迴圈,動畫迴圈一定次數,值的改變為一正弦函式:Math.sin(2* mCycles* Math.PI* input) android:interpolator="@android:anim/linear_interpolator" 線性均勻改變 android:interpolator="@android:anim/overshoot_interpolator" 加速執行,結束之後回彈
然後我們在程式碼中也可以設定,順序效果同上
animation.setInterpolator(new AccelerateInterpolator()); animation.setInterpolator(new DecelerateInterpolator()); animation.setInterpolator(new AccelerateDecelerateInterpolator()); animation.setInterpolator(new AnticipateInterpolator()); animation.setInterpolator(new AnticipateOvershootInterpolator()); animation.setInterpolator(new BounceInterpolator()); animation.setInterpolator(new CycleInterpolator(2)); animation.setInterpolator(new LinearInterpolator()); animation.setInterpolator(new OvershootInterpolator());
動畫不設定Interpolator屬性即為預設值,勻速
Interpolator屬性也可自定義