Android JDK為我們提供了4種動畫效果,分別是: AlphaAnimation,RotateAnimation, ScaleAnimation, TranslateAnimation.今天我想講解的是TranslateAnimation這個動畫效果。也是本人在做一個移動圖片的動畫效果的項目時,遇到了一些問題。在網上查了很多資料,搞了好幾天。終於明白怎么使用這個TranslateAnimation,在本文中記錄下來,以便以后忘記了可以查閱。
TranslateAnimation是移動的動畫效果。它有三個構造函數,分別是:
1.public TranslateAnimation(Context context,AttributeSet attrs) 略過
2.public 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坐標上的差值;
如果view在A(x,y)點 那么動畫就是從B點(x+fromXDelta, y+fromYDelta)點移動到C 點(x+toXDelta,y+toYDelta)點.
3.public TranslateAnimation (int fromXType, float fromXValue, int toXType, float toXValue, int fromYType, float fromYValue, int toYType, float toYValue)
fromXType:第一個參數是x軸方向的值的參照(Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF,or Animation.RELATIVE_TO_PARENT);
fromXValue:第二個參數是第一個參數類型的起始值;
toXType,toXValue:第三個參數與第四個參數是x軸方向的終點參照與對應值;
后面四個參數就不用解釋了。如果全部選擇Animation.ABSOLUTE,其實就是第二個構造函數。
以x軸為例介紹參照與對應值的關系:
如果選擇參照為Animation.ABSOLUTE,那么對應的值應該是具體的坐標值,比如100到300,指絕對的屏幕像素單位
如果選擇參照為Animation.RELATIVE_TO_SELF或者 Animation.RELATIVE_TO_PARENT指的是相對於自身或父控件,對應值應該理解為相對於自身或者父控件的幾倍或百分之多少。多試參數就明白了。