編輯:關於Android編程
本文實例講述了Android編程實現橫豎屏切換時不銷毀當前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>
加入這條屬性的含義是,應用程序將會處理屏幕方向和鍵盤狀態(推出或合上)信息的改動。但對於其他的設備配置信息的改動則會由Android系統來處理(銷毀當前Activity,然後重啟一個新的Activity實例)。
那麼,現在還需要在java代碼的activity子類中加入配置信息改動的處理代碼。這個也很簡單
/** * onConfigurationChanged * the package:android.content.res.Configuration. * @param newConfig, The new device configuration. * 當設備配置信息有改動(比如屏幕方向的改變,實體鍵盤的推開或合上等)時, * 並且如果此時有activity正在運行,系統會調用這個函數。 * 注意:onConfigurationChanged只會監測應用程序在AnroidMainifest.xml中通過 * android:configChanges="xxxx"指定的配置類型的改動; * 而對於其他配置的更改,則系統會onDestroy()當前Activity,然後重啟一個新的Activity實例。 */ @Override publicvoid onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // 檢測屏幕的方向:縱向或橫向 if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { //當前為橫屏, 在此處添加額外的處理代碼 } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { //當前為豎屏, 在此處添加額外的處理代碼 } //檢測實體鍵盤的狀態:推出或者合上 if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO){ //實體鍵盤處於推出狀態,在此處添加額外的處理代碼 } else if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES){ //實體鍵盤處於合上狀態,在此處添加額外的處理代碼 } }
別忘了在java文件中加上復制代碼 代碼如下:import android.content.res.Configuration。
這樣就OK了,屏幕方向改變時,應用程序的顯示界面也會隨著改動,而不是被銷毀!
Activity中還有一屬性和屏幕方向有關:
復制代碼 代碼如下:<activity . . . android:screenOrientation=["unspecified" | "user" | "behind" | "landscape" | "portrait" | "sensor" | "nosensor"] . . . </activity>
比如,在Mainifest.xml的Activity元素中增加這麼一個屬性:
復制代碼 代碼如下:android:screenOrientation="portrait"
則無論手機如何變動,擁有這個屬性的activity都將是豎屏顯示。
復制代碼 代碼如下:android:screenOrientation="landscape"為橫屏顯示。
這裡提一個小知識,Anroid模擬器中,快捷鍵"ctrl+F11"可以實現轉屏。
希望本文所述對大家Android程序設計有所幫助。
Service(服務)是一個應用程序組件,可以在後台執行長時間運行的操作,不提供用戶界面。其他應用程序組件可以啟動一個Serivce,它將繼續在後台運行,即使用戶切換到另
問題:如果圖片很大,全部載入內存,而顯示屏又不大,那麼再大的圖片也不會提高視覺效果的,而且會消耗無謂的內存。 解決辦法就是根據實際需要多大的圖片,然後動態計算應該載入多大
概述http Cache指的是web浏覽器所具有的復用本地已緩存的文檔”副本”的能力。我們知道,通過網絡獲取內容有時候成本很高,因而緩
GreenDao是Android當中的高性能ORM框架。(其他的有OrmLite等) 同時GreenDao還有一個子項目為GreenDao Code