標籤:set override 通過 com log pivot ati 螢幕 int
一、Activity切換動畫
在Android開發中,經常會遇到Activity之間轉場效果,下面介紹一下,Activity左右滑動轉場效果。在Android2.0以後版本,在Activity中添加了
1 /**2 * @method3 * @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 <set3 xmlns:android="http://schemas.android.com/apk/res/android">4 <translate5 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 <set3 xmlns:android="http://schemas.android.com/apk/res/android">4 <translate5 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 <set3 xmlns:android="http://schemas.android.com/apk/res/android">4 <translate5 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 <set3 xmlns:android="http://schemas.android.com/apk/res/android">4 <translate5 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 動畫進階之動畫切換