升级到2.0.9,屏幕适配问题

游戏设计分辨率是720x1280,游戏背景是5000x5000,手机是mi8,远超手机分辨率。

1.9.2,使用fitWidth模式,上下会被背景填充,没有黑边

升级到2.0.9,使用fitWidth模式,背景被剪裁

请问升级到2.x该怎么适配?
@panda@huanxinyin@Jare

求关注

2.x是有改动的,但是估计还是你自己的实现有问题,我这边使用2.0.9模拟这个分辨率是OK的,2048*2048的背景可以全部覆盖。

模拟器没有问题,手机小米8有问题

游戏设计分辨率是720x1280,游戏背景是2048x3200,fitWidth模式

demo:
demo.zip (236.5 KB)

oppo r17pro
安装之后也没有全面屏适配,通过系统操作之后,才会适配

能找到问题吗@huanxinyin

抱歉,我们这边测试机没有这两个机型,没法真机验证这个问题,我建个issue跟踪下。

你能确认下,fit height 是否可以铺满高度吗?

好,我试下

fit height也是一样的,上下都有黑边

fit width+fit height,也是上下都有黑边,场景范围外的内容不可见

我用2.1.0打包android也有这个问题,要手动设置手机才能全屏显示,默认显示的是设计分辨率的视图,不知道是不是要改android原生什么配置

<meta-data android:name="android.max_aspect" android:value="2.1" />

在小米8上测试,使用这个配置可以移除下面的黑边。
但是widget组件的节点,设置top和bottom,还是原来的范围,没有靠近顶部和底部

这个应该是安卓原生的SurfaceView的大小获取不是全屏的大小导致的,你们可以跟踪下这个代码,确认下。

刚测试了下,不论是fix width还是fix height, 大小都是1080x1989
设计分辨率是720x1280,实际分辨率是1080x2248,1989是怎么算出来的

这个问题,是Android配置问题,还是需要修改引擎?

要改Java层的代码,看下SurfaceView的大小怎么给的,这个是可能是适配不到位的问题了。

SurfaceView不是由引擎设置的吗,还是在Android项目中配置?

Android项目中配置的

配置哪一部分,能不能给个思路?

我试过配置:
<meta-data android:name="android.max_aspect" android:value="2.1" />
但是widget组件的节点,还是不能贴近屏幕边缘

https://forum.cocos.com/t/cocos-creator/74001
用这个大神的适配方式。在子节点使用widget有效。android:value=“2.1” 可以改成2.4。 我的手机2.4全屏下底边才会不显示黑边的。

我觉得引擎构建模板改一下比较好吧,或者给个编译选项,不然每次编译还有手动改一下配置文件,也挺麻烦的。