Android 設定動畫變化的速率
Android 設定動畫變化的速率
我們知道 Android 的動畫有檢視動畫,屬性動畫,幀動畫等等,對於檢視動畫我們是可以設定動畫的變化速率的,有加速,減速,先加速再減速…等等各種變化速率的效果。對於檢視動畫,建立動畫有兩種方式,一種是在 xml 檔案中建立,另一種是在程式碼中建立,因此對應的設定動畫變化速率也有兩種方式。
一、xml 中設定動畫的變化速率
1.設定動畫為加速動畫(動畫播放中越來越快):
android:interpolator="@android:anim/accelerate_interpolator"
2.設定動畫為減速動畫(動畫播放中越來越慢) :
android:interpolator="@android:anim/decelerate_interpolator"
3.設定動畫為先加速在減速(開始速度最快 逐漸減慢):
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
4.先反向執行一段,然後再加速反向回來(相當於我們彈簧,先反向壓縮一小段,然後在加速彈出):
android:interpolator="@android:anim/anticipate_interpolator"
5.同上先反向一段,然後加速反向回來,執行完畢自帶回彈效果(更形象的彈簧效果):
android:interpolator="@android:anim/anticipate_overshoot_interpolator"
6.執行完畢之後會回彈跳躍幾段(相當於我們高空掉下一顆皮球,到地面是會跳動幾下):
android:interpolator="@android:anim/bounce_interpolator"
7.迴圈,動畫迴圈一定次數,值的改變為一正弦函式:Math.sin(2* mCycles* Math.PI* input):
android:interpolator="@android:anim/cycle_interpolator"
8.線性均勻改變:
android:interpolator="@android:anim/linear_interpolator"
9.加速執行,結束之後回彈:
android:interpolator="@android:anim/overshoot_interpolator"
二、程式碼中設定動畫的變化速率
1.設定動畫為加速動畫(動畫播放中越來越快):
animation.setInterpolator(new AccelerateInterpolator());
2.設定動畫為減速動畫(動畫播放中越來越慢) :
animation.setInterpolator(new DecelerateInterpolator());
3.設定動畫為先加速在減速(開始速度最快 逐漸減慢):
animation.setInterpolator(new AccelerateDecelerateInterpolator());
4.先反向執行一段,然後再加速反向回來(相當於我們彈簧,先反向壓縮一小段,然後在加速彈出):
animation.setInterpolator(new AnticipateInterpolator());
5.同上先反向一段,然後加速反向回來,執行完畢自帶回彈效果(更形象的彈簧效果):
animation.setInterpolator(new AnticipateOvershootInterpolator());
6.執行完畢之後會回彈跳躍幾段(相當於我們高空掉下一顆皮球,到地面是會跳動幾下):
animation.setInterpolator(new BounceInterpolator());
7.迴圈,動畫迴圈一定次數,值的改變為一正弦函式:Math.sin(2* mCycles* Math.PI* input):
animation.setInterpolator(new CycleInterpolator(2));
8.線性均勻改變:
animation.setInterpolator(new LinearInterpolator());
9.加速執行,結束之後回彈:
animation.setInterpolator(new OvershootInterpolator());
如果覺得文章不錯或者有幫到你的話,歡迎大家點贊和評論!
你還可以在下面這些地方也可以找到我:
微信公眾號:「IT大飛說」
GitHub:https://github.com/xinpengfei520
CSDN:https://blog.csdn.net/xinpengfei521
簡書:https://www.jianshu.com/u/268aa8e1a12f
掘金:https://juejin.im/user/57c82d0779bc440063eac0f8
CnBlog:https://www.cnblogs.com/angel88/
知乎:https://www.zhihu.com/people/xin-peng-fei-9/activities
微博:https://weibo.com/u/1783451275?is_all=1
Blog:http://www.x-sir.com