Android关于全屏设置和隐藏状态栏、沉浸式状态栏的总结
来源:互联网 发布:锐捷交换机ip mac绑定 编辑:程序博客网 时间:2024/05/21 17:42
1.全屏和推出全屏
实现全屏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
退出全屏 final WindowManager.LayoutParams attrs = getWindow().getAttributes(); attrs.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().setAttributes(attrs); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
getWindow().getDecorView().setSystemUiVisibility(View.INVISIBLE);
参数:
- View.SYSTEM_UI_FLAG_VISIBLE:显示状态栏,Activity不全屏显示(恢复到有状态的正常情况)。
- View.INVISIBLE:隐藏状态栏,同时Activity会伸展全屏显示。
- View.SYSTEM_UI_FLAG_FULLSCREEN:Activity全屏显示,且状态栏被隐藏覆盖掉。
- View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:Activity全屏显示,但状态栏不会被隐藏覆盖,状态栏依然可见,Activity顶端布局部分会被状态遮住。
- View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
- View.SYSTEM_UI_LAYOUT_FLAGS:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
- View.SYSTEM_UI_FLAG_HIDE_NAVIGATION:隐藏虚拟按键(导航栏)。有些手机会用虚拟按键来代替物理按键。
- View.SYSTEM_UI_FLAG_LOW_PROFILE:状态栏显示处于低能显示状态(low profile模式),状态栏上一些图标显示会被隐藏。
(1).通过SystemBarTintManager
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { setTranslucentStatus(true); SystemBarTintManager tintManager = new SystemBarTintManager(this); tintManager.setStatusBarTintEnabled(true); tintManager.setStatusBarTintResource(R.color.color_top_bg);// 通知栏所需颜色 }
@TargetApi(19)private void setTranslucentStatus(boolean on) {Window win = getWindow();WindowManager.LayoutParams winParams = win.getAttributes();final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;// WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATIONif (on) {winParams.flags |= bits;} else {winParams.flags &= ~bits;}win.setAttributes(winParams);}
(2).通过顶部增加同ActionBar颜色的view(如果设置后出现tittlebar则在清单文件里面配置activity的style为NoTittlebar)
Window window = getWindow();window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);ViewGroup decorView = (ViewGroup) window.getDecorView();view = new View(this);view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, getStatusBarHeight(this)));view.setBackgroundColor(getResources().getColor(R.color.color_top_bg));decorView.addView(view);
阅读全文
0 0
- Android关于全屏设置和隐藏状态栏、沉浸式状态栏的总结
- android 隐藏状态栏和修改状态栏的背景颜色(沉浸式状态栏)
- 关于Android主题splash全屏和主页面的沉浸式状态栏
- Android设置全屏隐藏状态栏的方法
- Android动态显示和隐藏状态栏/实现沉浸式状态栏
- 沉浸式和状态栏的隐藏
- Android关于沉浸式状态栏总结
- android沉浸状态栏和顶部状态栏背景色的设置
- 关于Android沉浸式状态栏的设置以及相关问题
- 关于状态栏的沉浸式设置
- Android状态栏颜色设置(沉浸式状态栏)
- Android 设置状态栏颜色&&沉浸式状态栏
- Android状态栏的沉浸设置
- android设置沉浸式状态栏
- 【Android】沉浸式状态栏设置
- Android 沉浸式状态栏总结
- Android 设置全屏沉浸式透明状态栏的工具类(超级简单,两步实现)
- android虚拟按键和状态栏的问题 沉浸式状态栏
- Sql语句中IN和exists的区别及应用
- sublime text3的安装插件
- sql中自连接的使用
- Error: Some file crunching failed
- xCode 9.0提交应用到iTunes Connet 报ERROR ITMS-90717: "Invalid App Store Icon. 解决办法
- Android关于全屏设置和隐藏状态栏、沉浸式状态栏的总结
- ListView使用技巧之常用属性与方法
- MySQL运行状态show status中文详解
- Java接口特性学习
- C/C++程序训练6---歌德巴赫猜想的证明
- Spring boot的常用注解
- CURL 用法
- 命名规范
- python 模块和包