天天看點

Android橫豎屏切換解決方案Android橫豎屏切換解決方案

Android橫豎屏切換解決方案

原文位址:http://www.cnblogs.com/domybest/archive/2011/06/30/2094779.html

/××注釋

以下解決方案主要是針對切換不同的視圖時而不需重新加載activity裡的資料而設計的,當切換視圖是隻要做相應的處理就不會在此執行onCreate方法

到網上搜了下面這篇靠譜的文章,另外想實作橫豎屏不同布局的切換可以通過建立layout-land和layout-port檔案夾,然後他們裡面放同名的xml布局檔案即可實作

××/

首先在Mainifest.xml的Activity元素中加入android:configChanges="orientation|keyboardHidden"屬性

</activity>      

加入這條屬性的含義是,應用程式将會處理螢幕方向和鍵盤狀态(推出或合上)資訊的改動。但對于其他的裝置配置資訊的改動則會由Android系統來處理(銷毀目前Activity,然後重新開機一個新的Activity執行個體)。

其次添權重限

<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"></uses-permission>

那麼,現在還需要在java代碼的activity子類中加入配置資訊改動的處理代碼。這個也很簡單

}       
}      
别忘了在java檔案中加上import android.content.res.Configuration。      

這樣就OK了,螢幕方向改變時,應用程式的顯示界面也會随着改動,而不是被銷毀!

-----------------------------------還是分割線---------------------------------------------

擴充補充:

Activity中還有一屬性和螢幕方向有關:

. . .       
android:screenOrientation=["unspecified" | "user" | "behind" |       
"landscape" | "portrait" |       
"sensor" | "nosensor"]       
. . .       
</activity>      

比如,在Mainifest.xml的Activity元素中增加這麼一個屬性:

android:screenOrientation="portrait"

則無論手機如何變動,擁有這個屬性的activity都将是豎屏顯示。

android:screenOrientation="landscape",為橫屏顯示。

這裡提一個小知識,Anroid模拟器中,快捷鍵"ctrl+F11"可以實作轉屏。

另外解釋下:

configChanges有如下選項:  1. orientation :螢幕在縱向和橫向間旋轉,  2. keyboardHidden:鍵盤顯示或隐藏 ,3.fontScale:使用者變更了首選的字型大小   4.locale : 使用者選擇了不同的語言設定,5.  keyboard :鍵盤類型變更,例如手機從12鍵盤切換到全鍵盤   6. touchscreen或navigation:鍵盤或導航方式變化,

如果缺少了keyboardHidden選項 不能防止Activity的銷毀,并且在之後提到的onConfigurationChanged事件中 隻能捕獲豎屏變橫屏的事件 不能捕獲橫屏變豎屏