安卓包屏幕显示不完全

引擎版本3.7.2 手机型号红米k40 pro plus 游戏是竖屏的
屏幕下方有一指宽的黑边没有算在屏幕内,上面的部分能正常显示完整游戏,就连游戏启动时的logo都略微靠上了

打印日志发现,screen.windowSize.width是1080 screen.windowSize.height是2089
而手机屏幕的真实大小是1080*2400

height2089应该是安全区域的高

那如何获取全部屏幕的大小呢

新发现

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // DO OTHER INITIALIZATION BELOW
        SDKWrapper.shared().init(this);

        app = this;

        //测试屏幕大小
        Point screenSize = new Point();
        this.getWindowManager().getDefaultDisplay().getSize(screenSize);
        Log.i("JS:", "屏幕尺寸" + screenSize.x + ',' +  screenSize.y);

打印出来的是
屏幕尺寸1080,2009

java获取的就不对

去Andorid开发文档找找吧,我之前用的同事写好的接口

又有新发现,下面黑色的块,连点击都不响应

应该是这个 layoutInDisplayCutoutMode

和这个没关系吧,我遇到的问题是屏幕下面的一块没有被算作屏幕,不显示东西也不响应点击

安全区域刘海屏的高会减去,有些手机四角是圆弧形底部也会减去

那非安全区域也要显示东西的吧

你改下 layoutInDisplayCutoutMode 的参数打个包试试吧

非常感谢大佬关注 :smiley:,我已经解决问题了

<application> 标签中增加属性: android:resizeableActivity="false"

同时在节点下增加一个 meta-data 标签:

<!-- Render on full screen up to screen aspect ratio of 2.4 -->
<!-- Use a letterbox on screens larger than 2.4 -->
<meta-data android:name="android.max_aspect" android:value="2.4" />

原文 Android刘海屏、水滴屏全面屏适配方案 - 知乎

2赞