ScaleAnimation類是Android系統中的尺寸變化動畫類,用于控制View對象的尺寸變化,該類繼承于Animation類。 ScaleAnimation類中的很多方法都與Animation類一致,該類中最常用的方法便是ScaleAnimation構造方法。
【基本語法】public ScaleAnimation (float fromX, float toX, float fromY, float toY, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)
參數說明
fromX:起始X坐標上的伸縮尺寸。
toX:結束X坐標上的伸縮尺寸。
fromY:起始Y坐標上的伸縮尺寸。
toY:結束Y坐標上的伸縮尺寸。
pivotXType:X軸的伸縮模式,可以取值為ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。
pivotXValue:X坐標的伸縮值。
pivotYType:Y軸的伸縮模式,可以取值為ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。
pivotYValue:Y坐標的伸縮值。
【實例演示】下面通過代碼來演示如何設置一個簡單的尺寸變化動畫效果。
public classfirstActivity extends Activity {/** Called when the activity is first created.*/@Overridepublic void onCreate(Bundle savedInstanceState) { //重載onCreate方法
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView對象
Button btn1=(Button)findViewById(R.id.button1); //按鈕對象
Button btn2=(Button)findViewById(R.id.button2);
final Animation scaleAnimation= newScaleAnimation(0f,1f,0f,1f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);//設置尺寸變化動畫對象
btn1.setOnClickListener(new View.OnClickListener() { //設置監聽器
@Overridepublic voidonClick(View v) {//TODO Auto-generated method stub
scaleAnimation.setDuration(2000); //動畫持續時間
image.setAnimation(scaleAnimation); //設置動畫
scaleAnimation.startNow(); //啟動動畫
}
});
btn2.setOnClickListener(new View.OnClickListener() { //設置監聽器
@Overridepublic voidonClick(View v) {//TODO Auto-generated method stub
scaleAnimation.cancel(); //取消動畫執行
}
});
}
}
在 這段代碼中,首先通過ScaleAnimation構造方法創建了一個尺寸變化的動畫對象。然后,在第一個按鈕監聽器中設置了動畫的持續時間,之后啟動該 動畫。在第二個按鈕監聽器中取消該動畫。讀者運行這段代碼,將看到圖片從小到大逐漸變化,如圖9.9所示。最后,圖片增大到原始尺寸的時候停止,如圖 9.10所示。