刘海屏的纵横比
正常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,达到适配
在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的刘海屏只有一个摄像头大小。
部分安卓可以在设置中关闭刘海,屏幕两边留出黑边,相当于屏幕变小了,比如华为手机:显示-显示区域控制