700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 全屏实现-去除android盒子底部的虚拟导航按键

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

时间:2024-06-30 04:20:20

相关推荐

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

使用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盒子,启动发现盒子没有虚拟导航按键了,:)

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

/yiyaaixuexi/article/details/6233005这个对于屏幕尺寸描述很不错。学习

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。