Andriod anim 补间(Tween)动画与Interpolator以及setCustomAnimations方法
補間(Tween)動畫
Android 使用Animation代抽象的動畫類,它包括如下幾個子類。
- 一旦為補間動畫指定了三個必要信息,Android就會根據動畫的開始幀、結束幀、動畫持續時間計算出需要在中間“補入”多少幀,并計算所有補入幀的圖形。當用戶瀏覽補間動畫時,他眼中看到的依然是“逐幀動畫”。
- 為了控制在動畫期間需要動態“補入”多少幀,具體在動畫運行的哪些時刻補入幀,需要借助于Interpolator
Interpolator
-
Interpolator 根據特定算法計算出整個動畫所需要動態插入幀的密度和位置。簡單地說,aterpolator負責控制動畫的變化速度,這就使得基本的動畫效果(AIpha、Scale、Translate Roete能以勻速變化、加速、減速、拋物線速度等各種速度變化。
-
Interpolator是一個接口,它定義了所有Interpolator都需要實現的方法:float getInterpolation(floatimput),開發者完全可以通過實現Interpolator來控制動畫的變化速度。
Android為Interpolator提供了如下幾個實現類,分別用于實現不同的動畫變化速度。
為了在動畫資源文件中指定補間動畫所使用的 Interpolator,定義補間動畫的<set…/>元素支持
一個android:interpolator屬性,該屬性的屬性值可指定為Android默認支持的Interpolator。例如:
@android:anim/linear_interpolator
@android:anim/accelerate_interpolator
@android:anim/accelerate_decelerate_interpolator
……
其實上面的寫法很有規律,它們就是把系統提供的Interpolator實現類的類名的駝峰寫法改為下畫線寫法即可。
一旦在程序中通過AnimationUtils 得到了代表補間動畫的Animation 之后,接下來就可調用View的startAnimation(Animation anim)方法開始對該View執行動畫了。
位移(translate)、旋轉(rotate)、縮放(scale)、透明度(alpha)改變的補間動畫
<?xml version="1.0" encoding="utf-8"?> <!-- 定義動畫勻速改變 --> <set xmlns:android="http://schemas.android.com/apk/res/android"android:interpolator="@android:anim/linear_interpolator" ><translateandroid:duration="500"android:fromYDelta="100%"android:toYDelta="0%" /><rotateandroid:duration="5000"android:fromDegrees="0"android:pivotX="50%"android:pivotY="50%"android:toDegrees="720" /><scaleandroid:duration="1000"android:fillBefore="true"android:fromXScale="1.0"android:fromYScale="1.0"android:pivotX="50%p"android:pivotY="50%p"android:toXScale="2.0"android:toYScale="2.0" /><rotateandroid:duration="1000"android:fromDegrees="0.5"android:toDegrees="1" /> </set>setCustomAnimations方法
setCustomAnimations (int enter, int exit, int popEnter, int popExit),該方法有4個參數:
tips:setCustomAnimations方法必須成雙出現,要么寫兩個要么寫四個。上面部分代碼表示在Activity、Fragment中加載新的Fragment的動畫。
總結
以上是生活随笔為你收集整理的Andriod anim 补间(Tween)动画与Interpolator以及setCustomAnimations方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Andriod anim rotate中
- 下一篇: Android Activity的启动模