1. 程式人生 > >Android 動畫進階之動畫切換

Android 動畫進階之動畫切換

ram 屏幕 pre 退出 tac 旋轉動畫 utf 轉動 XML

一、Activity切換動畫

  在Android開發中,經常會遇到Activity之間切換效果,下面介紹一下,Activity左右滑動切換效果。在Android2.0以後版本,在Activity中添加了

1 /**
2  * @method
3  * @param -- int enterAnim : Activity在進入屏幕時的動畫
4  * @param -- int exitAnim : Activity在退出屏幕時的動畫
5  */
6 public void overridePendingTransition(int enterAnim, int exitAnim);

  PS:overridePendingTransition(...)方法必須在startActivity(...)或者finish()方法之後調用。

  在Android中,內置了一些動畫效果,可以通過Android.R.anim類使用。一般情況下,都使用自己定義Activity切換的動畫效果,下面先了解一下,Activity的位置定義,如下圖所示:

技術分享

                         (此圖來自於其它本博文)

  如上圖所示,以手機的下邊為X軸,手機的左邊為Y軸。當X = -100%p時,Activity位置在屏幕左側位置(如位置1圖);當X = 0%p時,Activity位置在屏幕中(如位置2圖);當X = 100%p時,Activity位置在屏幕的右側位置(如位置3圖)。而Y軸的Activity位置同理。

  下面代碼是兩個Activity左右滑動切換效果:

  1. 左出右入滑動效果:

1 startActivityForResult(intent, 11);
2 // 左出右進滑動效果
3 overridePendingTransition(R.anim.slide_right_in, R.anim.slide_left_out);

  slide_right_in.xml:

1 <?xml version="1.0" encoding="utf-8"?>
2 <set
3   xmlns:android="http://schemas.android.com/apk/res/android"
> 4 <translate 5 android:duration="800" 6 android:fromXDelta="100.0%p" 7 android:toXDelta="0.0" /> 8 </set>

  slide_left_out.xml:

1 <?xml version="1.0" encoding="utf-8"?>
2 <set
3   xmlns:android="http://schemas.android.com/apk/res/android">
4     <translate
5         android:duration="800"
6         android:fromXDelta="0.0"
7         android:toXDelta="-100.0%p" />
8 </set>

  2. 左進右出滑動效果:

1 finish();
2 // 左進右出滑動效果
3 overridePendingTransition(R.anim.slide_left_in, R.anim.slide_right_out);

  slide_left_in.xml:

1 <?xml version="1.0" encoding="utf-8"?>
2 <set
3   xmlns:android="http://schemas.android.com/apk/res/android">
4     <translate
5         android:duration="800"
6         android:fromXDelta="-100.0%p"
7         android:toXDelta="0.0" />
8 </set>

  slide_right_out.xml:

1 <?xml version="1.0" encoding="utf-8"?>
2 <set
3   xmlns:android="http://schemas.android.com/apk/res/android">
4     <translate
5         android:duration="800"
6         android:fromXDelta="0.0"
7         android:toXDelta="100.0%p" />
8 </set>

  

二、動畫XML標簽

1. Android animation由四種類型動畫組成的,分別為:

  • alpha:漸變透明度動畫效果;
  • scale:漸變尺寸縮放動畫效果;
  • translate:畫面轉換位置移動動畫效果;
  • rotate:畫面轉移旋轉動畫效果;

2.標簽屬性:

  • alpha
    • android:fromAlpha:開始時透明度;
    • android:toAlpha:結束時透明度;
    • androdi:duration:動畫持續時間;
  • scale
  • translate
    • android:duration:動畫持續時間;
    • android:fromXDelta:元素從某個位置開始動作;
    • android:toXDelta:元素到某個位置停止;
  • rotate
    • fromDegrees:動畫開始時角度;
    • toDegrees:動畫結束時角度;
    • pivotX:動畫相對於元素的X軸坐標的開始位置;
    • pivotY:動畫相對於元素的Y軸坐標的開始位置;

Android 動畫進階之動畫切換