1. 程式人生 > >玩轉Android之如何處理返回按鈕

玩轉Android之如何處理返回按鈕

Android和iPhone什麼的手機在按鍵上有一個很大的區別就是Android的手機有返回按鈕。今天就來講一下這個返回按鈕。這個問題處理不好後面會遇到些許的麻煩。

捕獲返回按鈕事件

首先建立一個我們今天要用的APP專案,然後給專案中新增兩個Activity:一個是ActivityOne,一個是ActivityTwo。實現一個簡單的功能,就是從ActivityOne跳轉到ActivityTwo。然後在ActivityTwo中點選返回按鈕返回到第一個Activity。

要響應返回按鈕的操作就要捕獲返回按鈕事件。程式碼如下:

    @Override
    public void
onBackPressed() { Log.i(TAG, "back button pressed"); super.onBackPressed(); }

現在你在ActivityTwo點選了返回按鈕之後,你就會看看到這個方法執行了。當然,不會有什麼不一樣的,還是返回到了前一個Activity。如果你把super.onBackPressed();這句注掉,點選返回按鈕就不會再返回前一個Activity了,只留在原來的Activity裡。

捕獲了返回操作,能做點什麼呢

一般情況下,返回按鈕都應該只處理一件事:退回到上一個Activity。但是還是可以乾點別的事的。第一,修改預設的返回動畫。你可以在anim

資料夾下新增動畫,然後在onBackPressed()方法裡使用這個動畫覆蓋預設的返回動畫。

    @Override
    public void onBackPressed() {
        Log.i(TAG, "back button pressed");
        super.onBackPressed();
        overridePendingTransition(R.anim.zoom_in, R.anim.zoom_out);
    }

動畫xml檔案:
zoom_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="500" android:shareInterpolator="@android:anim/accelerate_decelerate_interpolator"> <scale android:fromXScale="80%" android:fromYScale="80%" android:pivotX="50%" android:pivotY="50%" android:toXScale="100%" android:toYScale="100%" /> <alpha android:fromAlpha="0.5" android:toAlpha="1.0" /> </set>

zoom_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="500"
    android:shareInterpolator="@android:anim/accelerate_decelerate_interpolator">
    <scale
        android:fromXScale="100%"
        android:fromYScale="100%"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="150%"
        android:toYScale="150%" />
    <alpha
        android:fromAlpha="1.0"
        android:toAlpha="0.5" />
</set>

這裡我們用自定義的動畫代替了系統預設的Activity之間切換的動畫。關於動畫現在不用瞭解太多,之後會有詳細的講解。