Android屏幕相关设置
博客导航
Android横屏显示
方案一:AndroidManifest.xml中配置里面设置
设置activity的android:screenOrientation属性。
“unspecified”:默认值 由系统来判断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的显示方向.
“landscape”:横屏显示(宽比高要长)
“portrait”:竖屏显示(高比宽要长)
“user”:用户当前首选的方向
“behind”:和该Activity下面的那个Activity的方向一致(在Activity堆栈中的)
“sensor”:有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换。根据物理传感器方向转动,用户90度、180度、270度旋转手机方向,activity都更着变化,会重启activity(无论系统是否设置为自动转屏,activity页面都会跟随传感器而转屏)
“nosensor”:忽略物理感应器,这样就不会随着用户旋转设备而更改了("unspecified"设置除外)。旋转设备时候,界面不会跟着旋转。初始化界面方向由系统控制(无论系统是否设置为自动转屏,activity页面都不会转屏)
sensorLandscape,横屏旋转,就是可以上下旋转,有两个方向,不会重启activity
sensorPortrait,竖屏旋转,就是可以上下旋转,有两个方向,不会重启activity
reverseLandscape,与正常的横向方向相反显示(反向横屏)
reversePortrait,与正常的纵向方向相反显示(反向竖屏)
方案二:代码设置
activity里面在setContentView()方法之前设置
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
它会调至默认的横屏方向。
if(this.getResources().getConfiguration().orientation ==Configuration.ORIENTATION_PORTRAIT){ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);}
全屏显示
方案一:代码设置
activity里面的onCreate()里面设置
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
加强版
private void hideStatusNavigationBar(){ if(Build.VERSION.SDK_INT<16){ this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); }else{ int uiFlags = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN //hide statusBar | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION; //hide navigationBar getWindow().getDecorView().setSystemUiVisibility(uiFlags); } }private void hideNavigationBar() { View decorView = getWindow().getDecorView(); int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN; decorView.setSystemUiVisibility(uiOptions); } private void showNavigationBar() { View decorView = getWindow().getDecorView(); int uiOptions = View.SYSTEM_UI_FLAG_VISIBLE; decorView.setSystemUiVisibility(uiOptions); }private void setSystemUIVisible(boolean show) { if (show) { int uiFlags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE; uiFlags |= 0x00001000; getWindow().getDecorView().setSystemUiVisibility(uiFlags); } else { int uiFlags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN; uiFlags |= 0x00001000; getWindow().getDecorView().setSystemUiVisibility(uiFlags); } }
Attr Des
SYSTEM_UI_FLAG_VISIBLE 显示状态栏和导航栏
SYSTEM_UI_FLAG_LOW_PROFILE 此模式下,状态栏的图标可能是暗的
SYSTEM_UI_FLAG_HIDE_NAVIGATION 隐藏导航栏
SYSTEM_UI_FLAG_FULLSCREEN 全屏,隐藏状态栏和导航栏
SYSTEM_UI_FLAG_LAYOUT_STABLE
SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 全屏,隐藏导航栏,状态栏浮在布局上
SYSTEM_UI_FLAG_IMMERSIVE 沉浸式:半透明的状态栏和导航栏
SYSTEM_UI_FLAG_IMMERSIVE_STICKY 粘性沉浸式
方案二:AndroidManifest.xml中配置里面设置
<activity android:name="MyActivity" android:screenOrientation="landscape" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
更多相关文章
- Android之TextView属性列表
- Android(安卓)TextView使用HTML处理字体样式、显示图片等
- android-edittext
- Android(安卓)TextView、EditText显示表情
- 在定制android设备时,刷机后不全屏显示或实现长按Home键current a
- Android(安卓)ListView滑动过程中图片显示重复错乱闪烁问题解决
- android:ellipsize
- 【Android】Android(安卓)UI显示原理
- android:layout_weight属性详解