android TranslateAnimation

  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指的是相對於自身或父控件,對應值應該理解爲相對於自身或者父控件的幾倍或百分之多少。多試參數就明白了。


關於標黃色那句話的理解:

如果view在A(x,y)點,從D(x0,y0)點移到到A點:

int fromXDelta=-params.leftMargin+x0;

int fromYDelta=params.bottomMargin-y0;

new TranslateAnimation(fromXDelta,0 , fromYDelta,0);

從A點移到到D(x0,y0)點:

 toXDelta=-params.leftMargin+x0;
 toYDelta=params.bottomMargin-y0;

  new TranslateAnimation(0, toXDelta, 0,toYDelta));//X爲正:右移;Y爲正:下移

原文:http://www.cnblogs.com/sysbug/archive/2012/01/18/2325530.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章