安卓的Tween Animation分為4種動畫效果,分別是:alpha (透明變化) translate(位置移動) scale(縮放) rotate(旋轉)。
其中Translate動畫就是定義一個開始的位置和一個結束位置,定義移動時間,然後就能自動產生移動動畫,實現控件的動態位移。Android的translate移動方向有 橫向(X) 豎向(Y)
TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)
參數說明如下:
float fromXDelta 動畫開始的點離當前View X坐標上的差值
float toXDelta 動畫結束的點離當前View X坐標上的差值
float fromYDelta 動畫開始的點離當前View Y坐標上的差值
float toYDelta 動畫開始的點離當前View Y坐標上的差值
要注意的是參數fromXDelta指的是開始動畫時的點的X坐標相對於View初始位置時X坐標的偏移量,例如一開始設置View的X坐標為3,經過第一次動畫移動到X坐標為10的位置,當進行第二次動畫時,參數fromXDelta指的是第二次動畫開始的點的坐標相對於初始位置(X坐標為3)的偏移量,而不是相對於第一次移動過後(X坐標為10)的偏移量;Y坐標的偏移量也是如此。如果不注意這點,當進行多次動畫時將會發生錯誤移動。
示例代碼:
Animation animation = new TranslateAnimation(10f,100f,0,0);//平移動畫
animation.setFillAfter(true);//動畫終止時停留在最後一幀,不然會回到沒有執行前的狀態
animation.setDuration(200);//動畫持續時間0.2秒
imageview.startAnimation(animation);//是用ImageView來顯示動畫的