1. 程式人生 > >Android 動畫之ScaleAnimation

Android 動畫之ScaleAnimation

android中提供了4中動畫:
AlphaAnimation 透明度動畫效果
ScaleAnimation 縮放動畫效果
TranslateAnimation 位移動畫效果
RotateAnimation 旋轉動畫效果

本節講解ScaleAnimation 動畫,
ScaleAnimation(float fromX, float toX, float fromY, float toY,int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)
引數說明:
複製程式碼 程式碼如下:
float fromX 動畫起始時 X座標上的伸縮尺寸
float toX 動畫結束時 X座標上的伸縮尺寸
float fromY 動畫起始時Y座標上的伸縮尺寸
float toY 動畫結束時Y座標上的伸縮尺寸
int pivotXType 動畫在X軸相對於物件位置型別
float pivotXValue 動畫相對於物件的X座標的開始位置
int pivotYType 動畫在Y軸相對於物件位置型別
float pivotYValue 動畫相對於物件的Y座標的開始位置

程式碼:
複製程式碼
程式碼如下:
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);
/** 設定縮放動畫 */
final ScaleAnimation animation =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
animation.setDuration(2000);//設定動畫持續時間
/** 常用方法 */
//animation.setRepeatCount(int repeatCount);//設定重複次數
//animation.setFillAfter(boolean);//動畫執行完後是否停留在執行完的狀態
//animation.setStartOffset(long startOffset);//執行前的等待時間
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();
}
});
}
}

效果: