解析Android橫豎屏切換的問題
更新時間:2013年06月19日 09:56:22 作者:
本篇文章是對Android中橫豎屏切換的問題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
在做android 開發(fā)時,在默認(rèn)情況下當(dāng)屏幕從豎評變到橫屏?xí)r會觸發(fā) onConfigurationChanged 事件 在默認(rèn)情況下會重新加載畫面并顯示和橫評一樣的畫面,這樣會有2個問題,
布局問題,在豎屏 顯示的布局到橫屏中由于寬和高發(fā)生了變化所有多少都會影響到布局(除非你定制2套畫面在然后加個判斷在橫屏?xí)r怎么顯示,在豎屏?xí)r怎么顯示),當(dāng)然最簡單的辦法就是在項目的 AndroidManifest.xml中找到你所指定的activity 中加上
只豎屏顯示的話(android:screenOrientation="portrait")
只橫屏顯示的話(android:screenOrientation="landscape")
畫面重新載入問題:在默認(rèn)情況下橫豎 切換時會重新載入畫面,導(dǎo)致一些不必要的資源浪費(fèi),更嚴(yán)重的是畫面上保持的數(shù)據(jù)(特別是游戲方面)也都被重置了(當(dāng)然你可以在重置前保存這些數(shù)據(jù)到數(shù)據(jù)庫或者到文本文件中),要怎么避免在橫豎 切換時重新載入畫面,
首先要在 AndroidManifest.xml中找到你所指定的activity 中加上android:configChanges="orientation|keyboardHidden"
然后 在activity的邏輯處理中(代碼部分)去重載onConfigurationChanged事件,具體代碼參考一下(注:下面這個代碼是把橫豎屏切換時,畫面不切換,且都當(dāng)成豎屏處理):
@Override
public void onConfigurationChanged(Configuration config) {
try {
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
//橫屏?xí)r要處理的代碼,
//這里的代碼是當(dāng)屏幕橫屏?xí)r當(dāng)成豎屏顯示
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
//豎屏?xí)r要處理的代碼
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
} catch (Exception ex) {
}
}
以上就可以簡單的控制你的app畫面的顯示方式并且在顯示方式不變的情況下橫豎 屏切換時不會重新加載畫面,即優(yōu)化的你的app同時用戶體驗也相應(yīng)提高了。
以上,希望對大家有幫助。呵呵。
布局問題,在豎屏 顯示的布局到橫屏中由于寬和高發(fā)生了變化所有多少都會影響到布局(除非你定制2套畫面在然后加個判斷在橫屏?xí)r怎么顯示,在豎屏?xí)r怎么顯示),當(dāng)然最簡單的辦法就是在項目的 AndroidManifest.xml中找到你所指定的activity 中加上
只豎屏顯示的話(android:screenOrientation="portrait")
只橫屏顯示的話(android:screenOrientation="landscape")
畫面重新載入問題:在默認(rèn)情況下橫豎 切換時會重新載入畫面,導(dǎo)致一些不必要的資源浪費(fèi),更嚴(yán)重的是畫面上保持的數(shù)據(jù)(特別是游戲方面)也都被重置了(當(dāng)然你可以在重置前保存這些數(shù)據(jù)到數(shù)據(jù)庫或者到文本文件中),要怎么避免在橫豎 切換時重新載入畫面,
首先要在 AndroidManifest.xml中找到你所指定的activity 中加上android:configChanges="orientation|keyboardHidden"
然后 在activity的邏輯處理中(代碼部分)去重載onConfigurationChanged事件,具體代碼參考一下(注:下面這個代碼是把橫豎屏切換時,畫面不切換,且都當(dāng)成豎屏處理):
復(fù)制代碼 代碼如下:
@Override
public void onConfigurationChanged(Configuration config) {
try {
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
//橫屏?xí)r要處理的代碼,
//這里的代碼是當(dāng)屏幕橫屏?xí)r當(dāng)成豎屏顯示
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
//豎屏?xí)r要處理的代碼
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
} catch (Exception ex) {
}
}
以上就可以簡單的控制你的app畫面的顯示方式并且在顯示方式不變的情況下橫豎 屏切換時不會重新加載畫面,即優(yōu)化的你的app同時用戶體驗也相應(yīng)提高了。
以上,希望對大家有幫助。呵呵。
您可能感興趣的文章:
相關(guān)文章
Android轉(zhuǎn)場效果實現(xiàn)示例淺析
這篇文章主要為大家介紹了Android轉(zhuǎn)場效果實現(xiàn)示例淺析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
Android 將本地資源圖片轉(zhuǎn)換成Drawable,進(jìn)行設(shè)置大小操作
這篇文章主要介紹了Android 將本地資源圖片轉(zhuǎn)換成Drawable,進(jìn)行設(shè)置大小操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
android apk反編譯到j(luò)ava源碼的實現(xiàn)方法
Android由于其代碼是放在dalvik虛擬機(jī)上的托管代碼,所以能夠很容易的將其反編譯為我們可以識別的代碼,本文將詳細(xì)介紹,需要的朋友可以參考下2012-12-12
分享Android開發(fā)中最有效率最快的循環(huán)代碼
分享Android開發(fā)中最有效率最快的循環(huán)代碼,需要的朋友可以參考下2013-01-01
Android 進(jìn)階實現(xiàn)性能優(yōu)化之OOM與Leakcanary詳解原理
LeakCanary 是大名鼎鼎的 square 公司開源的內(nèi)存泄漏檢測工具。目前上大部分App在開發(fā)測試階段都會接入此工具用于檢測潛在的內(nèi)存泄漏問題,做的好一點的可能會搭建一個服務(wù)器用于保存各個設(shè)備上的內(nèi)存泄漏問題再集中處理2021-11-11

