[分享] 在全螢幕和非全螢幕間切換

看板AndroidDev作者 (我還想要更多力量)時間14年前 (2012/02/23 11:17), 編輯推噓1(105)
留言6則, 2人參與, 最新討論串1/1
最近要用到 轉直的不要全螢幕 轉橫的要顯示成全螢幕 當然View也要不同啦,不過這只是小事情。 一時之間咕不到,不過倒是有踹出來。 有錯請不吝指教。 在onConfigurationChanged裡面做這件事, 最主要就是記得要clearFlags 不然畫面會跑一部分到status bar底下,看起來怪怪的。 final Window window = getWindow(); switch(orientation) { case ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE: window.clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); showLandscape(); //顯示你的橫的要長的樣子 break; case ActivityInfo.SCREEN_ORIENTATION_PORTRAIT: default: window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); window.setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN, WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); showPortraitView(); //你直的要長怎樣? break; } 至於orientation的判斷如下:我是以長寬來判斷。 private int getScreenOrientation() { Display display = getWindowManager().getDefaultDisplay(); screenWidth = display.getWidth(); screenHeight = display.getHeight(); return screenWidth > screenHeight ? ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; } -- 抱最大的希望,為最大的努力,做最壞的打算。 嚴長壽 領最大的薪水,擁最大的權勢,做最壞的榜樣。 立法院 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.88.75

02/23 11:23, , 1F
螢幕在轉的時候,會經過一次onresume,把建立畫面的動作寫
02/23 11:23, 1F

02/23 11:24, , 2F
在那邊就ok了
02/23 11:24, 2F

02/23 11:27, , 3F
所以是不用clearFlags?因為問題並不在建立畫面。
02/23 11:27, 3F

02/23 11:28, , 4F
問題是出在全螢幕切換間會造成畫面被狀態列擋住
02/23 11:28, 4F

02/23 11:29, , 5F
至於要在onResume還是onConfigurationChanged做
02/23 11:29, 5F

02/23 11:29, , 6F
這部份我覺得或許onResume比較好。
02/23 11:29, 6F
文章代碼(AID): #1FHQ-i-J (AndroidDev)
文章代碼(AID): #1FHQ-i-J (AndroidDev)