1. 程式人生 > 其它 >Android切換頁面的特效

Android切換頁面的特效

技術標籤:Androidandroid

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()方法的後面。

這樣就實現了左右切換的效果。