国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

Android編程實(shí)現(xiàn)橫豎屏切換時(shí)不銷毀當(dāng)前activity和鎖定屏幕的方法

2020-04-11 11:18:33
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(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ì)處理屏幕方向和鍵盤狀態(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í)體鍵盤的推開或合上等)時(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í)體鍵盤的狀態(tài):推出或者合上if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO){//實(shí)體鍵盤處于推出狀態(tài),在此處添加額外的處理代碼} else if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES){//實(shí)體鍵盤處于合上狀態(tài),在此處添加額外的處理代碼}}

別忘了在java文件中加上

復(fù)制代碼 代碼如下:
import android.content.res.Configuration

這樣就OK了,屏幕方向改變時(shí),應(yīng)用程序的顯示界面也會(huì)隨著改動(dòng),而不是被銷毀!

Activity中還有一屬性和屏幕方向有關(guān):

復(fù)制代碼 代碼如下:
<activity . . . android:screenOrientation=["unspecified" | "user" | "behind" | "landscape" | "portrait" | "sensor" | "nosensor"] . . . </activity>

比如,在Mainifest.xml的Activity元素中增加這么一個(gè)屬性:
復(fù)制代碼 代碼如下:
android:screenOrientation="portrait"

則無(wú)論手機(jī)如何變動(dòng),擁有這個(gè)屬性的activity都將是豎屏顯示。
復(fù)制代碼 代碼如下:
android:screenOrientation="landscape"
為橫屏顯示。
這里提一個(gè)小知識(shí),Anroid模擬器中,快捷鍵"ctrl+F11"可以實(shí)現(xiàn)轉(zhuǎn)屏。

希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 鹤峰县| 崇仁县| 嵊州市| 时尚| 上虞市| 富平县| 盱眙县| 甘德县| 静乐县| 富裕县| 象山县| 丹东市| 左贡县| 沙湾县| 台山市| 湘潭市| 霍林郭勒市| 瑞丽市| 城步| 长泰县| 八宿县| 白朗县| 突泉县| 莲花县| 铜鼓县| 建宁县| 诸城市| 文成县| 中西区| 嘉峪关市| 连山| 南陵县| 屯留县| 错那县| 溧水县| 盐边县| 盐池县| 阿拉善右旗| 蛟河市| 扎兰屯市| 扬州市|