Android橫豎屏切換問題

來源:互聯網
上載者:User

在做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同時使用者體驗也相應提高了。

以上,希望對大家有協助。呵呵。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.