您的位置:首页 > 移动开发 > Android开发

隐藏android系统的状态栏和导航栏

2017-08-24 17:51 821 查看

隐藏android系统的状态栏和导航栏

Android系统默认都会显示顶部的状态栏和底部的导航栏,并且默认允许下拉,下面说说如何将他们都禁止掉。

1,先说状态栏

状态栏其实就是SystemUI.apk,源码目录是android/frameworks/base/packages/SystemUI/,但是状态栏的隐藏并不是修改SystemUI中的内容,而是修改android/frameworks/base/core/res/res/values/dimens.xml中的内容,这个文件是整个android系统公用的,一般不直接修改,而是通过overlay机制进行覆盖修改,用到overlay又必须提到板型目录,我们知道android/device/目录下存放的是公司目录/[产品目录]/板型目录,其中产品目录是可选的,我们公司是这样的android/device/actions/s900_vr/,其中actions是公司名,s900_vr是板型名称。修改方法是:新增文件device/actions/s900_vr/overlay/frameworks/base/core/res/res/values/dimens.xml,这个文件看起来应该是这样的,当然你还可以添加其他的配置项的覆盖:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="status_bar_height">0dip</dimen>
</resources>


其中配置项status_bar_height的值设为0dip就会隐藏android系统的状态栏

2,再说导航栏

导航栏其实就是屏幕下方的BACK,HOME,RECENT这3个虚拟按键,修改方法是:新增文件android/device/actions/s900_vr/overlay/frameworks/base/core/res/res/values/config.xml,这个文件看起来应该是这样的,当然你还可以添加其他的配置项的覆盖:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="config_showNavigationBar">false</bool>
</resources>


其中配置项config_showNavigationBar的值设为false就会隐藏导航栏

如果这两个文件你不知道怎么写,那就从frameworks/base/core/res/res/values/中的dimens.xml和config.xml拷贝过去,然后再修改对应的配置项的值就好了,放心,上面说的这两个配置项都在这两个文件中。

3,最后说说如何禁止下拉

frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.Java

frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
2285     boolean panelsEnabled() {
2286         return (mDisabled & StatusBarManager.DISABLE_EXPAND) == 0;
2287     }


把这个函数的返回值改为false:

2285     boolean panelsEnabled() {
2286         return false;
2287     }


就可以禁止下拉,这样当你从屏幕上方往下滑动的时候,是不会显示设置和Notification的。



文献参考:

1、隐藏android系统的状态栏和导航栏

http://blog.csdn.net/lizekun2010/article/details/52473571
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android