全屏实现-去除android盒子底部的虚拟导航按键

来源:互联网 发布:淘宝店关了怎么重新开 编辑:程序博客网 时间:2024/05/14 03:59
使用android盒子进行开发,因为盒子没有操作按键,通常实现是在屏幕底部出现虚拟按键(HOME、BACK等),使用过两个盒子,一个盒子(盒子1)配置是虚拟按键一直存在页面上,及时打开植物大战僵尸的游戏也是如此,一个盒子(盒子2)是虚拟按键上有隐藏按钮,从底部鼠标拖动可以再弹出来。

为了最大化的使用页面,希望能够在远程桌面程序运行时真正全屏,使可视最大化。

从网上了解到对于此类全屏给出的解释如下,在Activity中添加如下配置

        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                             WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.main);

添加如下代码后发现可以隐藏标题栏(title),但是对于Navigation虚拟部分是不受影响的(如果存在,虚拟按键占用屏幕高度,如果不存在,则真正全屏了),对于盒子1是无法实现真正全屏的。

另外一种方式是使用view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION),此类广泛用在视频播放,但是点击或者触屏动作会首先被系统捕获,出现Navigaton虚拟按钮,这样远程桌面的交互也是需要在出现虚拟导航按钮的情况下来交互,也是非全屏方式。

看到了一个关于页面大小的文章,参考尾部连接,看到了对于状态栏在系统都是通过xml配置的,因此可以修改导航栏的长度实现隐藏导航栏,这需要有root权限,我是有盒子系统代码的,找到framework/base/core/res/res/values/dimens.xml,在其中把Navigation的配置改成0

    <!-- Height of the bottom navigation / system bar. -->
    <dimen name="navigation_bar_height">0dp</dimen>
    <!-- Height of the bottom navigation bar in portrait; often the same as @dimen/navigation_bar_height -->
    <dimen name="navigation_bar_height_landscape">0dp</dimen>
因为这个改动只修改了framework的资源文件,编译内核,获取framework-res.apk(./out/target/product/g18ref/system/framework/) , adb push到手机的/system/framework(在这个目录下能看到原有的framework-res.apk),然后reboot盒子,启动发现盒子没有虚拟导航按键了,:)

对于全屏的实现一定不局限于此,应当有很多的方式可以完成,不断学习补充。


http://blog.csdn.net/yiyaaixuexi/article/details/6233005这个对于屏幕尺寸描述很不错。学习

0 0
原创粉丝点击