码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 解决Unity-2020 安卓异形屏黑边


    背景

    Unity 2020.3.17 版本开发的游戏,打apk包,发现两个问题

    1. 如图下午所示,实体白色导航栏,阻挡了整个安卓UI界面,难看还影响美观。

    安卓导航栏截图.png

    1. 安卓系统 12-13 版本手机,异形屏。一侧安全区黑边遮挡,占空间还不美观。

    安卓异形屏黑边截图.png

    尝试方案

    仅做记录,不感兴趣的,可以直接跳解决方案。

    增加如下代码,在cocos2d 系列游戏, 黑边问题(隐藏导航栏)基本能完美解决。但是在unity游戏,尝试修改很多安卓层代码和清单文件配置,黑边问题并不奏效。最终翻阅unity开发文档,尝试了一下。问题得以解决。

    • 处理异形屏黑边问题
    
          if (Build.VERSION.SDK_INT >= 28) {
               getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
                WindowManager.LayoutParams lp = getWindow().getAttributes();
                lp.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
                getWindow().setAttributes(lp);
            }
    
    • 隐藏和现实导航栏或者状态栏
    // 隐藏系统UI(状态栏和导航栏)  
    public void hideSystemUI() {  
        // 启用沉浸模式  
        // 注意:这些标志在Android不同版本中的效果可能有所不同  
        // FLAG_FULLSCREEN 用于隐藏状态栏  
        // FLAG_HIDE_NAVIGATION 用于隐藏导航栏  
        // FLAG_IMMERSIVE_STICKY 或 FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS 用于改进显示效果  
        View decorView = getWindow().getDecorView();  
        int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN  
                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION  
                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;  
        decorView.setSystemUiVisibility(uiOptions);  
    }  
      
    // 显示系统UI(用于用户交互时恢复系统UI)  
    public void showSystemUI() {  
        View decorView = getWindow().getDecorView();  
        int uiOptions = View.SYSTEM_UI_FLAG_VISIBLE;  
        decorView.setSystemUiVisibility(uiOptions);  
    }  
    
    

    解决方案

    • Hide Navigation Bar : 启用该选项,用于处理安卓生命周期显示(隐藏)导航栏

    • Render outside safe area : 启用该选项可允许使用所有可用的屏幕空间(包括显示屏缺口(凹口)区域)进行渲染

    unity解决方案.png

  • 相关阅读:
    Unsatisfied dependency expressed through bean property ‘sqlSessionTemplate‘;
    剑指 Offer II 037. 小行星碰撞
    聚观早报|腾讯员工平均月薪超8万;马斯克考虑卸任特斯拉CEO
    OpenHarmony实战开发-多设备自适应能力
    Spring Cloud Gateway现高风险漏洞,建议采取措施加强防护
    基于STM32的循迹小车项目实战
    element plus Message方法手动关闭,close方法使用
    2023年SpinalHDL应用前景探索线上研讨会----征集演讲嘉宾
    【学习笔记04】认识npm
    图片批量编辑器,轻松拼接多张图片,创意无限!
  • 原文地址:https://blog.csdn.net/baidu_31156101/article/details/139685666
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号