玩轉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之間切換的動畫。關于動畫現在不用了解太多,之后會有詳細的講解。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容