作者lovelycateye (我还想要更多力量)
看板AndroidDev
标题[分享] 在全萤幕和非全萤幕间切换
时间Thu Feb 23 11:16:57 2012
最近要用到
转直的不要全萤幕
转横的要显示成全萤幕
当然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
1F:推 LaPass:萤幕在转的时候,会经过一次onresume,把建立画面的动作写 02/23 11:23
2F:→ LaPass:在那边就ok了 02/23 11:24
3F:→ lovelycateye:所以是不用clearFlags?因为问题并不在建立画面。 02/23 11:27
4F:→ lovelycateye:问题是出在全萤幕切换间会造成画面被状态列挡住 02/23 11:28
5F:→ lovelycateye:至於要在onResume还是onConfigurationChanged做 02/23 11:29
6F:→ lovelycateye:这部份我觉得或许onResume比较好。 02/23 11:29