Interpolator 被用來修飾動畫效果,定義動畫的變化率,可以使存在的動畫效果accelerated(加速)
,decelerated(減速),repeated(重複),bounced(彈跳)等。
AccelerateDecelerateInterpolator 在動畫開始與結束的地方速率改變比較慢,在中間的時候加速
AccelerateInterpolator 在動畫開始的地方速率改變比較慢,然後開始加速
AnticipateInterpolator 開始的時候向後然後向前甩
AnticipateOvershootInterpolator 開始的時候向後然後向前甩一定值後返回最後的值
BounceInterpolator 動畫結束的時候彈起
CycleInterpolator 動畫循環播放特定的次數,速率改變沿着正弦曲線
DecelerateInterpolator 在動畫開始的地方快然後慢
LinearInterpolator 以常量速率改變
OvershootInterpolator 向前甩一定值後再回到原來位置
需要注意的是:
在插入器寫完之後需要在動畫裏面進行調用
1、這是動畫
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@anim/oi" > //在這個地方進行引用 <translate android:duration="2000" android:fromXDelta="0" android:toXDelta="50" /> </set>
2、這個插入器
<?xml version="1.0" encoding="utf-8"?> <anticipateOvershootInterpolator xmlns:android="http://schemas.android.com/apk/res/android" android:tension="5" android:extraTension="10"> </anticipateOvershootInterpolator>
//這個插入器有很多類型,都在上面了,自己看去
LayoutAnimationController用於爲一個layout裏面的控件,或者是一個ViewGroup裏面的控件設置動畫效果,可以在XML文件中設置,亦可以在Java代碼中設置。
一種直接在XML文件中設置
1. 在res/anim文件夾下新建一個XML文件,名爲list_anim_layout.xml,
[java] view plain copy
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
android:delay="30%"
android:animationOrder="reverse"
android:animation="@anim/slide_right" />
android:delay 子類動畫時間間隔 (延遲) 70% 也可以是一個浮點數 如“1.2”等
android:animationOrder="random" 子類的顯示方式 random表示隨機
android:animationOrder 的取值有
normal 0 默認
reverse 1 倒序
random 2 隨機
android:animation="@anim/slide_right" 表示孩子顯示時的具體動畫是什麼
說明:其中delay的單位爲秒;animation爲設置動畫的文件。animationOrder爲進入方式
2. 在res/anim文件夾下新建一個XML文件,名爲slide_right,即上面用到的文件。
[html] view plain copy
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
<translate android:fromXDelta="-100%p" android:toXDelta="0"
android:duration="@android:integer/config_shortAnimTime" />
</set>
顯示的效果爲ListView第一次出現的時候爲 item隨機出現 每個Item都是從左不可見(-100%p)的區域向右滑動到顯示的地方
3. 在主佈局文件中爲控件添加如下配置:
android:layoutAnimation="@anim/list_anim_layout",即第一步的佈局文件。