天天看點

Android 動畫之TranslateAnimation應用詳解

TranslateAnimation動畫,TranslateAnimation比較常用,比如QQ,網易新聞菜單條的動畫,就可以用TranslateAnimation實作, 

通過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坐标上的內插補點 

常用方法: 

animation.setDuration(long durationMillis);//設定動畫持續時間 

animation.setRepeatCount(int i);//設定重複次數 

animation.setRepeatMode(Animation.REVERSE);//設定反方向執行 

Xml屬性: 

android:duration:運作動畫的時間 

android:repeatCount:定義動畫重複的時間 

代碼: 

public class MainActivity extends Activity { 

ImageView image; 

Button start; 

Button cancel; 

@Override 

public void onCreate(Bundle savedInstanceState) { 

super.onCreate(savedInstanceState); 

setContentView(R.layout.activity_main); 

image = (ImageView) findViewById(R.id.main_img); 

start = (Button) findViewById(R.id.main_start); 

cancel = (Button) findViewById(R.id.main_cancel); 

/** 設定位移動畫 向右位移150 */ 

final TranslateAnimation animation = new TranslateAnimation(0, 150,0, 0); 

animation.setDuration(2000);//設定動畫持續時間 

animation.setRepeatCount(2);//設定重複次數   -1代表一直循環

start.setOnClickListener(new OnClickListener() { 

public void onClick(View arg0) { 

image.setAnimation(animation); 

/** 開始動畫 */ 

animation.startNow(); 

}); 

cancel.setOnClickListener(new OnClickListener() { 

public void onClick(View v) { 

/** 結束動畫 */ 

animation.cancel(); 

繼續閱讀