Android編程實(shí)現(xiàn)橫豎屏切換時(shí)不銷毀當(dāng)前activity和鎖定屏幕的方法
本文實(shí)例講述了Android編程實(shí)現(xiàn)橫豎屏切換時(shí)不銷毀當(dāng)前activity和鎖定屏幕的方法。分享給大家供大家參考,具體如下:
首先在Mainifest.xml的Activity元素中加入android:configChanges="orientation|keyboardHidden"屬性
<activityandroid:name=".FileBrowser"android:label="@string/app_name"android:configChanges="orientation|keyboardHidden"> <intent-filter> <actionandroid:name="android.intent.action.MAIN"/> <categoryandroid:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity>
加入這條屬性的含義是,應(yīng)用程序?qū)?huì)處理屏幕方向和鍵盤(pán)狀態(tài)(推出或合上)信息的改動(dòng)。但對(duì)于其他的設(shè)備配置信息的改動(dòng)則會(huì)由Android系統(tǒng)來(lái)處理(銷毀當(dāng)前Activity,然后重啟一個(gè)新的Activity實(shí)例)。
那么,現(xiàn)在還需要在java代碼的activity子類中加入配置信息改動(dòng)的處理代碼。這個(gè)也很簡(jiǎn)單
/** * onConfigurationChanged * the package:android.content.res.Configuration. * @param newConfig, The new device configuration. * 當(dāng)設(shè)備配置信息有改動(dòng)(比如屏幕方向的改變,實(shí)體鍵盤(pán)的推開(kāi)或合上等)時(shí), * 并且如果此時(shí)有activity正在運(yùn)行,系統(tǒng)會(huì)調(diào)用這個(gè)函數(shù)。 * 注意:onConfigurationChanged只會(huì)監(jiān)測(cè)應(yīng)用程序在AnroidMainifest.xml中通過(guò) * android:configChanges="xxxx"指定的配置類型的改動(dòng); * 而對(duì)于其他配置的更改,則系統(tǒng)會(huì)onDestroy()當(dāng)前Activity,然后重啟一個(gè)新的Activity實(shí)例。 */ @Override publicvoid onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // 檢測(cè)屏幕的方向:縱向或橫向 if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { //當(dāng)前為橫屏, 在此處添加額外的處理代碼 } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { //當(dāng)前為豎屏, 在此處添加額外的處理代碼 } //檢測(cè)實(shí)體鍵盤(pán)的狀態(tài):推出或者合上 if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO){ //實(shí)體鍵盤(pán)處于推出狀態(tài),在此處添加額外的處理代碼 } else if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES){ //實(shí)體鍵盤(pán)處于合上狀態(tài),在此處添加額外的處理代碼 } }
別忘了在java文件中加上
這樣就OK了,屏幕方向改變時(shí),應(yīng)用程序的顯示界面也會(huì)隨著改動(dòng),而不是被銷毀!
Activity中還有一屬性和屏幕方向有關(guān):
比如,在Mainifest.xml的Activity元素中增加這么一個(gè)屬性:
則無(wú)論手機(jī)如何變動(dòng),擁有這個(gè)屬性的activity都將是豎屏顯示。
這里提一個(gè)小知識(shí),Anroid模擬器中,快捷鍵"ctrl+F11"可以實(shí)現(xiàn)轉(zhuǎn)屏。
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
- Android App中實(shí)現(xiàn)向右滑動(dòng)銷毀功能的要點(diǎn)解析
- Android的Activity跳轉(zhuǎn)動(dòng)畫(huà)各種效果整理
- android的activity跳轉(zhuǎn)到另一個(gè)activity
- android PopupWindow 和 Activity彈出窗口實(shí)現(xiàn)方式
- Android基礎(chǔ)之Fragment與Activity交互詳解
- Android Activity之間傳遞圖片(Bitmap)的方法
- Android筆記之:App應(yīng)用之啟動(dòng)界面SplashActivity的使用
- Activity透明/半透明效果的設(shè)置transparent(兩種實(shí)現(xiàn)方法)
- android獲取當(dāng)前運(yùn)行Activity名字的方法
- Android Activity切換(跳轉(zhuǎn))時(shí)出現(xiàn)黑屏的解決方法 分享
- Android實(shí)現(xiàn)Activity界面切換添加動(dòng)畫(huà)特效的方法
- 詳解Android.activity銷毀流程的工作原理
相關(guān)文章
Android實(shí)現(xiàn)二維碼掃描和生成的簡(jiǎn)單方法
這篇文章主要介紹了Android實(shí)現(xiàn)二維碼掃描和生成的簡(jiǎn)單方法的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07Android應(yīng)用中ListView利用OnScrollListener分頁(yè)加載數(shù)據(jù)
這篇文章主要介紹了Android應(yīng)用中ListView利用OnScrollListener分頁(yè)加載數(shù)據(jù)的方法,包括對(duì)OnScrollListener事件順序次數(shù)的分析,需要的朋友可以參考下2016-03-03Android編程實(shí)現(xiàn)異步消息處理機(jī)制的幾種方法總結(jié)
這篇文章主要介紹了Android編程實(shí)現(xiàn)異步消息處理機(jī)制的幾種方法,結(jié)合實(shí)例形式詳細(xì)總結(jié)分析了Android異步消息處理機(jī)制的原理、相關(guān)實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下2018-08-08android編程實(shí)現(xiàn)局部界面動(dòng)態(tài)切換的方法
這篇文章主要介紹了android編程實(shí)現(xiàn)局部界面動(dòng)態(tài)切換的方法,以實(shí)例形式較為詳細(xì)的分析了Android局部切換的布局及功能實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11Android 快速實(shí)現(xiàn)防止網(wǎng)絡(luò)重復(fù)請(qǐng)求&按鈕重復(fù)點(diǎn)擊的方法
下面小編就為大家分享一篇Android 快速實(shí)現(xiàn)防止網(wǎng)絡(luò)重復(fù)請(qǐng)求&按鈕重復(fù)點(diǎn)擊的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01Android Studio 3.6 調(diào)試 smali的全過(guò)程
這篇文章主要介紹了Android Studio 3.6 調(diào)試 smali, 目前最新版的 Android Studio 利用附加功能調(diào)試 smali 非常方便,具體操作步驟跟隨小編一起看看吧2020-02-02Android開(kāi)發(fā)環(huán)境安裝和配置圖文教程
輕松搞定Android開(kāi)發(fā)環(huán)境部署,這篇文章主要為大家詳細(xì)介紹了Android開(kāi)發(fā)環(huán)境安裝和配置圖文教程,感興趣的小伙伴們可以參考一下2016-06-06