Android手機橫豎屏切換小結

本篇是關於Android橫豎屏切換的小結。

一、橫豎屏幕固定設置:
很多遊戲是固定橫屏的模式。而在Android中是可以在清單配置文件設置的:

<!--在activity的屬性screenOrientation中設置,常用的有portrait(豎屏)、landscape(橫屏)等-->
<activity android:name=".MainActivity"
    android:screenOrientation="landscape">
    ...
</activity>

另外,還可使用動態添加的方式設置:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

二、橫豎屏可切換:
一般來說,橫豎屏允許切換的情況比較多見,並且橫豎屏切換要使用不同的佈局文件。這樣才能達到合理的顯示效果。
1.方法一:編寫兩個佈局(比如命名爲layout_main_landscape.xml、layout_main_portrait.xml)
在onCreate方法中使用:

int orientation = getResource().getConfiguration().orentation();
if (orientation == Configuration.ORIENTATION_PORTRAIT) {
    setContentView(R.layout.layout_main_portrait);
} else if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
    setContentView(R.layout.layout_main_landscape);
}

此種方法是在Activity的基本生命週期中操作:在屏幕切換時,生命週期方法的執行順序是:
這裏寫圖片描述

2.方法二:在onConfigurationChanged方法中,設置切換操作。
步驟一: 在Android 清單配置文件中設置:

<!--在要調用onConfigurationChanged方法的Activity標籤中設置-->
<activity android:name=".MainActivity"
    android:configChanges="orientation|keyboardHidden|screenSize">
    ...
</activity>

步驟二:在MainActivity(注意我用的是MainActivity,不同的自行調整)中重寫onConfigurationChanged方法。

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        // TODO 執行在橫屏中的操作
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
        // TODO 執行在豎屏中的操作
    }
}

相關參考連接:http://blog.csdn.net/junhuahouse/article/details/38109125

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章