在做android 開發時,在預設情況下當螢幕從豎評變到橫屏時會觸發 onConfigurationChanged 事件 在預設情況下會重新載入畫面並顯示和橫評一樣的畫面,這樣會有2個問題,
布局問題,在豎屏 顯示的布局到橫屏中由於寬和高發生了變化所有多少都會影響到布局(除非你定製2套畫面在然後加個判斷在橫屏時怎麼顯示,在豎屏時怎麼顯示),當然最簡單的辦法就是在項目的 AndroidManifest.xml中找到你所指定的activity 中加上
只豎屏顯示的話(android:screenOrientation="portrait")
只橫屏顯示的話(android:screenOrientation="landscape")
畫面重新載入問題:在預設情況下橫豎 切換時會重新載入畫面,導致一些不必要的資源浪費,更嚴重的是畫面上保持的資料(特別是遊戲方面)也都被重設了(當然你可以在重設前儲存這些資料到資料庫或者到文字檔中),要怎麼避免在橫豎 切換時重新載入畫面,
首先要在 AndroidManifest.xml中找到你所指定的activity 中加上android:configChanges="orientation|keyboardHidden"
然後 在activity的邏輯處理中(代碼部分)去重載onConfigurationChanged事件,具體代碼參考一下(
註:下面這個代碼是把橫豎屏切換時,畫面不切換,且都當成豎屏處理):
複製代碼 代碼如下:@Override
public void onConfigurationChanged(Configuration config) {
try {
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
//橫屏時要處理的代碼,
//這裡的代碼是當螢幕橫屏時當成豎屏顯示
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
//豎屏時要處理的代碼
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
} catch (Exception ex) {
}
}
以上就可以簡單的控制你的app畫面的顯示方式並且在顯示方式不變的情況下橫豎 屏切換時不會重新載入畫面,即最佳化的你的app同時使用者體驗也相應提高了。
以上,希望對大家有協助。呵呵。