Android切換頁面的特效
Android預設切換頁面的特效:
接下來我想修改成左右滑動的特效:
這時候需要用到一個方法:
public void overridePendingTransition (int enterAnim, int exitAnim)
enterAnim :Activity進入螢幕時的動畫
exitAnim :Activity退出螢幕時的動畫
且overridePendingTransition方法必須在startActivity()或者finish()方法的後面。
Activity的位置定義:
如圖所示,以手機螢幕左下角為原點,分別有X軸和Y軸,當Activity在X軸值為-100%p時,剛好在螢幕的左邊(位置1),當X軸值為0%p時,剛好再螢幕內(位置2),當X=100%p時剛好在螢幕右邊(位置3)。
當我們從主介面切換到次介面時,首先讓要退出的Activity從位置2移動到位置1,同時讓進入的Activity從位置3移動位置2,這樣就能實現從右到左的切換效果。
1.首先定義2個動畫,在 app的res目錄下建立anim目錄, 然後在目錄裡建立動畫的xml檔案:out_to_left.xml (從左邊退出動畫) 、in_from_right.xml(從右邊進入動畫)
out_to_left.xml(從 位置2 移動到 位置1)
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <translate android:duration="260" android:fromXDelta="0%p" android:toXDelta="-100%p"></translate> </set>
in_from_right.xml(從 位置3 移動到 位置2)
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <translate android:duration="260" android:fromXDelta="100%p" android:toXDelta="0%p"></translate> </set>
2.再去app/src/mian/java下的MainActivity.java中新增一句程式碼
//設定切換動畫,從右邊進入,左邊退出
overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);
該方法必須在startActivity()方法的後面。
當我們從次介面切換到主介面時,首先讓要退出的Activity從位置2移動到位置3,同時讓進入的Activity從位置1移動位置2,這樣就能實現從左到右的切換效果。
1.首先定義2個動畫,在 app的res目錄下建立anim目錄, 然後在目錄裡建立動畫的xml檔案:out_to_right.xml (從右邊退出動畫) 、in_from_left.xml(從左邊進入動畫)
out_to_right.xml(從 位置2 移動到 位置3)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
<translate
android:duration="260"
android:fromXDelta="0%p"
android:toXDelta="100%p"></translate>
</set>
in_from_left.xml(從 位置1 移動到 位置2)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
<translate
android:duration="260"
android:fromXDelta="-100%p"
android:toXDelta="0%p"></translate>
</set>
2.再去app/src/mian/java下的MainActivity2.java中新增一句程式碼
//設定切換動畫,從左邊進入,右邊退出
overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);
該方法必須在finish()方法的後面。
這樣就實現了左右切換的效果。