为游戏适配刘海屏
刘海屏的纵横比
手机 | 分辨率 | 屏幕纵横比 | 刘海高度 | 刘海宽度 | 圆角大小 |
---|---|---|---|---|---|
正常1080 | 1080*1920 | 1.7777 | |||
iphone x | 1125*2436 | 2.16533 | |||
iphone xs max | 1242*2688 | 2.16425 | |||
华为P20 pro | 1080*2240 | 2.074074 | 81 | ||
华为荣耀 10 | 1080*2280 | 2.11111 | 90 | ||
小米8 | 1080*2248 | 2.0814 | 89 | 560 | |
小米8 SE | 1080*2248 | 2.0814 | 85 | 540 | |
oppo | 1080*2200 | 2.037 | 80 | 324 | |
vivo | 1080*2280 | 2.11111 | 27 | 100 | 50 |
联想z5 | 2246*1080 | 2.079 | |||
通过表中的数据,可以得出结论:刘海屏的屏占高更高,如果我们的游戏是横屏,那么界面就会更长。
适配思路
知道这个特性之后,就可以对我们的界面进行锚点,分为 左 ,中 ,右,背景 四部分。
当在刘海屏下,左右都往中间靠,具体为:左部分往右方向偏移 X1,右部分往左方向偏移X2,背景是全屏的,中间部分不动
适配示例
比如我们的全屏界面,可以这样处理
而当非全屏界面时,可以对界面下所有第一层节点,进行整体往左偏移X1,达到适配
模拟刘海屏
如果有Android P的机型做测试,那是最好的。但是目前安卓模拟器的系统普遍还没有更新到Android 9,而且想下载Google的模拟器也那么不容易,所以建议在Unity的编辑器下进行测试。
在Unity中模拟刘海屏的分辨率,观察效果
各厂商的刘海屏适配方案
华为刘海屏:https://developer.huawei.com/consumer/cn/devservice/doc/50114?from=timeline
小米刘海屏:
https://blog.csdn.net/wypeng2010/article/details/81065049l
OPPO刘海屏适配官方文档
https://open.oppomobile.com/service/message/detail?id=61876
vivo刘海屏适配官方文档
https://dev.vivo.com.cn/documentCenter/doc/103
google官方
https://developer.android.com/preview/features
google的刘海屏只有一个摄像头大小。
部分安卓可以在设置中关闭刘海,屏幕两边留出黑边,相当于屏幕变小了,比如华为手机:显示-显示区域控制