• Qt 5.9 for Android 实现沉浸式状态栏


      Android 手机应用程序如果不全屏,系统默认的顶部状态栏的颜色(黑色)会破坏精心设计的 APP 的整体风格和美感,所以,对状态栏的处理,个人觉得还是很有必要的。

      在 Qt 5.9 中,使用 QML声明式语言, 通过 Screen 对象来获取到设备的长宽,可以分别获取到整个设备的长宽和去掉手机顶部状态栏之后的长宽,可以说非常方便吧,但是,当你设置整个 Windows 对象或者ApplicationWindow 对象的长宽为设备的最大长宽的时候,会发现并不能生效,状态栏屹立不倒,忘了说了,这个沉浸式状态栏只有在 Android 4.4 及以上版本才会有效,4.4 以下的根本不支持,所以各位要注意自己的调试设备的系统版本。

      我在做这个的时候,在网上搜索了很多博客,有一部分说的是利用 Screen 获取长宽后全屏,然后,上方放置一个透明的矩形之类的,这个方法在 Qt 5.9 下面没能成功,因为根本都无法全屏,再者,全屏了之后,状态栏是会被影藏的,就算你设置了透明也看不到了吧,这个方式 Pass !

      第二种是通过 AndroidManifest.xml 设置 style ,先在 android/res 文件夹下添加 style 文件,然后在 AndroidManifest.xml 引用,style 文件里面设置

      android:windowTranslucentStatus 属性为 true,再设置 

      android:fitsSystemWindows 属性为 true, 然后就就就就就就就就行了,因为这个已经是在利用 Android 系统本身的东西来设置了,几乎脱离了 Qt,感觉还是很靠谱的,但是,我还是失败了。难受...

      以上两种方式,有兴趣的朋友可以自己先试试看,也许是我的打开方式不对呢,万一你就成功了呢!

      最后呢,我想到了 JNI ,Android 系统是由 Java 实现的,我直接通过 Java 代码来实现这个东西,理论上是绝对可行的啊,所以,我建立了 Androidmanifest.xml 之后,添加了我自己编写的 Java 文件,在文件中,重载了 Android 系统程序的入口函数 onCreate()代码如下

      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        getWindow().getDecorView().setFitsSystemWindows(true);

      }

    其实什么都没有,就是几句话的事,然后程序就自动全屏了,状态栏也透明了,效果如下图:

      这种方式是我在 Android 开发者博客上偷来的,感觉都是 Andoid 开发,都差不多,问我为什么? 母鸡~~~这个方式我想想其实和设置 style 是一样的道理,至于为什么我设置 style 失败,不清楚,诸位可以自己试试,如果成功,就可以不用添加 Java 文件了,挺好的....

      还有个问题就是在全屏以后,Qt 就无法获取到状态栏的高度了,因为全屏了,然后标题的位置就不好居中了,这是个问题!

      最后,这个东西其实不叫沉浸式状态栏,沉浸式其实是那种全屏游戏的那种,整个屏幕都是窗口的那种,这个叫法都是因为人云亦云,官方没有给出确切的名称,开发者就随便取的名字,不过,不重要了,鸡蛋好吃,没必要知道母鸡的名字,更没必要知道这个蛋排行老几~~~

      对这个东西还有问题的老铁,可以留言,我看到会及时回复,就这样,Bye~~~

    
    
    
    
  • 相关阅读:
    python3.7 打包(.exe)神器——pyinstaller 安装及用法
    python3.7下运行pyspider报错的问题及解决方案
    python3一键排版证件照(一寸照、二寸照),附源代码
    傻瓜式下载“喜马拉雅”音频文件
    windows 7 32位环境下安装Redis、安装桌面管理工具redis-desktop-manager
    python3爬虫之验证码的识别——selenium自动识别验证码并点击提交,附源代码
    python3爬虫之验证码的识别——第三方平台超级鹰
    python3爬虫之验证码的识别——图形验证码
    python3爬虫之图形验证码的识别——环境安装
    scrapy爬虫笔记(入门级案例)
  • 原文地址:https://www.cnblogs.com/hbrw/p/7125564.html
Copyright © 2020-2023  润新知