android4.1 平板隐藏System Bar 发表于1年前(2012-11-05 18:24) 阅读(1985) | 评论(4) 16人收藏此文章, 我要收藏 赞0 android4.1 平

转载 2013年12月02日 15:39:05

android4.1 平板隐藏System Bar

发表于1年前(2012-11-05 18:24)   阅读(1985) | 评论(4) 16人收藏此文章, 我要收藏
0

/**
* @author wilber
* @target 4.1
* @requirements:4.1平板隐藏系统栏
* @theme android4.1 平板隐藏System Bar
* @remark 转载请注明出处http://my.oschina.net/wilber
*/

有时开发视频或游戏程序,即使设置了getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE),一不小心触摸了底部区域的小黑点,看视频注意力会分散,游戏中断或注意力分散,颇感不爽。

网上搜罗了相应的资料,好像4.1有个SYSTEM_UI_FLAG_HIDE_NAVIGATION可以处理System Bar的隐藏,不管我在代码里面如何设置,就是不见效果,怀疑是手机上面的功能块吧,没得4.1的实体手机,就不具体深究。网上有些工具软件对其处理,有的需要Root权限,有的只是移动SystemUI软件包位置作消显,感觉不实用,查看View.java的源码,发现还有个标志位SYSTEM_UI_FLAG_SHOW_FULLSCREEN,实践了一会,预期的效果就出来了。

关键代码:

01 /**
02  * 设置系统栏可见性
03  */
04 public static void setSystemBarVisible(final Activity context,boolean visible) {
05     int flag = context.getWindow().getDecorView().getSystemUiVisibility();   // 获取当前SystemUI显示状态
06     // int fullScreen = View.SYSTEM_UI_FLAG_SHOW_FULLSCREEN;
07     int fullScreen = 0x8;   // 4.1 View.java的源码里面隐藏的常量SYSTEM_UI_FLAG_SHOW_FULLSCREEN,其实Eclipse里面也可以调用系统隐藏接口,重新提取下android.jar,这里就不述了。
08     if(visible) {   // 显示系统栏
09         if((flag & fullScreen) != 0) {  // flag标志位中已经拥有全屏标志SYSTEM_UI_FLAG_SHOW_FULLSCREEN
10             context.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);   // 显示系统栏
11         }
12     else {    // 隐藏系统栏
13         if((flag & fullScreen) == 0) {  // flag标志位中不存在全屏标志SYSTEM_UI_FLAG_SHOW_FULLSCREEN
14             context.getWindow().getDecorView().setSystemUiVisibility(flag | fullScreen); // 把全屏标志位加进去
15         }
16     }
17 }

这里多加了判断的方法,供调用

1 /**
2  * 判断状态栏是否显示
3  */
4 public static boolean isSystemBarVisible(final Activity context) {
5     int flag = context.getWindow().getDecorView().getSystemUiVisibility();
6     // return (flag & View.SYSTEM_UI_FLAG_SHOW_FULLSCREEN) != 0;
7     return (flag & 0x8) == 0;
8 }

代码可能对3.0或4.0以上的手机版本不适用,只实测4.1平板,在4.04的小米手机上无效果

补充:最近看了下官方4.1的源码,唉,代码不一致,无效果,原来是Rockchip厂商新加入的功能,无奈,但是此功能可移植成功,抱歉。

相关文章推荐

android4.1 平板隐藏System Bar

  • 2012年11月06日 11:21
  • 898KB
  • 下载

Android 如何对apk文件进行反编译以及重新打包签名 标签: apktoolandroid反编译jebSmali2Java 2016-05-10 16:00 3897人阅读 评论(0) 收藏

Android 如何对apk文件进行反编译以及重新打包签名 标签: apktoolandroid反编译jebSmali2Java 2016-05-10 16:00 3897人阅...

浏览器中的data类型的Url格式,data:image/png,data:image/jpeg! 收藏 苏生不惑 发表于 4年前 阅读 3943 收藏 3 点赞 0 评论 0 腾讯云·

浏览器中的data类型的Url格式,data:image/png,data:image/jpeg! 收藏 苏生不惑 发表于 4年前阅读 3943收藏 3点...

用户体验是个什么东西?用户体验如何评价好坏?怎样用一句话描述用户体验评价方法的核心? 标签: iphoneapple手机产品通讯工具 2012-05-24 10:41 1453人阅读 评论(0) 收

用户体验是个什么东西?用户体验如何评价好坏?怎样用一句话描述用户体验评价方法的核心?   个人对用户体验的目标是,做到“自然”。 举几个例子, 1,我观察3岁的小孩用i...
  • a325455
  • a325455
  • 2017年07月06日 17:30
  • 132

系统学习深度学习(七)--主流深度学习开源框架对比 2017-01-23 11:05 2292人阅读 评论(0) 收藏 举报 分类: 深度学习(30) 目录(?)[+] 转自:http://b

系统学习深度学习(七)--主流深度学习开源框架对比 2017-01-23 11:05 2292人阅读 评论(0) 收藏 举报  分类: 深度学习(30)  ...

安装mysql Install/Remove of the Service Denied!错误的解决办法 2013-11-05 10:08 81426人阅读 评论(6) 收藏 举报 分类: m

安装mysql Install/Remove of the Service Denied!错误的解决办法 2013-11-05 10:08 81426人阅读 评论(6) 收藏 举报  分类...

开发者是如何提升技能水平的 发表于1小时前| 770次阅读| 来源SquareSpace| 1 条评论| 作者Denis Gobo 开源程序员博客代码编程经验分享 摘要:作为一个技术开发人员,不断的学

开发者是如何提升技能水平的 发表于1小时前| 770次阅读| 来源SquareSpace| 1 条评论| 作者Denis Gobo 开源程序员博客代码编程经验分享 摘要:...

Docker迈入云(DockerHub)+端(Docker引擎)时代 发表于14小时前| 1120次阅读| 来源OpenStack中国社区| 3 条评论| 作者郭长波 DockerPaaSGCE 摘要

摘要:6月9日Docker1.0正式发布,商业公司Docker Inc.同时宣布提供企业级服务,Google、Rackspace等的实践标志着Docker向正式大规模生产系统中的应用方面迈出了艰难一步...

MySQL添加新用户、为用户创建数据库、为新用户分配权限 标签: MySQL 2016-12-17 16:41 2768人阅读 评论(0) 收藏 举报 分类: =======学习心得=======

MySQL添加新用户、为用户创建数据库、为新用户分配权限 标签: MySQL 2016-12-17 16:41 2768人阅读 评论(0) 收藏 举报  分类: ===...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android4.1 平板隐藏System Bar 发表于1年前(2012-11-05 18:24) 阅读(1985) | 评论(4) 16人收藏此文章, 我要收藏 赞0 android4.1 平
举报原因:
原因补充:

(最多只允许输入30个字)