引言
看到很多RecyclerView都有不錯的動畫,我動畫知識也很欠缺,就決定拿他來玩玩。
本文先玩設定RecyclerView的加載動畫
代碼
效果
實作步驟:
1.在res/anim檔案下新增動畫animate.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@integer/anim_duration_medium">
<translate
android:fromYDelta="100%"
android:toYDelta="0" />
<alpha
android:fromAlpha="0"
android:toAlpha="1" />
<scale
android:fromXScale="105%"
android:fromYScale="105%"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="100%"
android:toYScale="100%" />
</set>
2.recylerView設定LayoutAnimationController
LayoutAnimationController controller = new LayoutAnimationController(AnimationUtils.loadAnimation(this,R.anim.animate));
recyclerView.setLayoutAnimation(controller);
動畫筆記
關于動畫從來都沒有好好的玩過,以下記錄一下學習到的。
Android中動畫有四種基本動畫:
animate | description |
---|---|
translate | 位移動畫 |
alpha | 漸變透明度動畫 |
scale | 縮放動畫 |
rotate | 旋轉動畫 |
如上面的動畫一樣,可使用set集合來組合動畫
關于插值器,我了解的是 值的一種變化方式。
比如從0-100變化,有的插值器會勻速變有的會加速…
常用插值器:
interpolator | description |
---|---|
AccelerateInterpolator | 在動畫開始的地方速率變小,然後開始加速變大 |
DecelerateInterpolator | 在動畫開始的地方變大,然後慢慢變小 |
AnticipateInterpolator | 開始的時候慢慢變小,然後突然加速變大 |
BounceInterpolator | 變大動畫快結束的時候,突然更大變大,然後還原 |
CycleInterpolator | 動畫循環播放特定的次數,速率改變沿着正弦曲線 |
LinearInterpolator | 勻速變大 |
AccelerateInterpolator | 向前甩一定值後再回到原來位置 |
從開始看到别人寫的動畫時,總是疑惑裡面的傳值機關,有的是int有的是float有的甚至是百分号,決定總結一下。
translate标簽:
0是原來的位置
//機關是int%,0可以省略%
android:fromYDelta="100%"
android:toYDelta="0"
alpha标簽:
0-1是從完全透明到完全不透明
//機關是float
android:fromAlpha="0"
rotate标簽(需要中心點坐标):
從小到大是順時針旋轉,從大到小是逆時針旋轉。
//機關是int
android:fromDegrees="0"
scale标簽(需要中心點坐标):
//機關是int%
android:fromXScale="105%"
另外中心點坐标pivotY的機關是int%
android:pivotX="50%"