Tween動畫
tween動畫通過view的內容完成圖形的變化,來完成動畫的效果,主要有以下四種效果:
1. Alpha : 透明動畫效果
2. Scale: 放大縮小效果
3. Translate: 移動效果
4. Rotate: 旋轉效果
我們要在代碼完成動畫,步驟如下
1. 建立要動的控件UI
2. 建立動畫類(透明、放大、移動、旋轉)
3. 設定動畫屬性(位址、角度、時間等)
4. 啟動動畫(starAnimation(animation));
簡單的例子:
public class Anim extends Activity { LinearLayout layout; // 透明度的動畫 Button alphaBtn; Animation alphaAnimation; // 放大縮小動畫 Button scaleBtn; Animation scaleAnimation; // 移動動畫 Button trnaslateBtn; Animation trnaslateAnimation; // 旋轉動畫 Button rotateBtn; Animation rotateAnimation; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); layout = new LinearLayout(this); // Alpha動畫的按鈕 alphaBtn = new Button(this); alphaBtn.setText("Alpha"); alphaBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { alphaAnimation = new AlphaAnimation(0.1f, 1.0f); alphaAnimation.setDuration(1000); alphaBtn.setAnimation(alphaAnimation); } }); // Scale動畫的按鈕 scaleBtn = new Button(this); scaleBtn.setText("Scale"); scaleBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { scaleAnimation = new ScaleAnimation(0.1f, 1.0f, 0.1f, 1.0f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f); scaleAnimation.setDuration(1000); scaleBtn.setAnimation(scaleAnimation); } }); // Translate動畫的按鈕 trnaslateBtn = new Button(this); trnaslateBtn.setText("Translate"); trnaslateBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { trnaslateAnimation = new TranslateAnimation(10,100,10,100); trnaslateAnimation.setDuration(1000); trnaslateBtn.setAnimation(scaleAnimation); } }); // Rotate動畫的按鈕 rotateBtn = new Button(this); rotateBtn.setText("Rotate"); rotateBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { rotateAnimation = new RotateAnimation(0,360); rotateAnimation.setDuration(1000); rotateBtn.setAnimation(rotateAnimation); } }); layout.addView(alphaBtn); layout.addView(scaleBtn); layout.addView(trnaslateBtn); layout.addView(rotateBtn); setContentView(layout); } } |
附註: 該動畫類也可以使用xml方式定義,我們直接使用starAnimation(該動畫)啟動。
沒有留言:
張貼留言