Unity快速适配安卓刘海屏(又简单又快 适配了O版本和P版本)

刘海屏适配,其实就是知道刘海高度(横屏游戏),来对ui进行偏移

所以刘海屏适配的关键是获取刘海高度

       NotchFit是一款Android端的刘海屏适配库,适配了O版本和P版本,它屏蔽了不同厂商不同设备不同系统版本对刘海屏适配带来的一系列的繁杂的问题。

     NotchFit可以智能的判断刘海的逻辑参数,所谓的刘海逻辑参数是该库对设备刘海参数的一个抽象获取,刘海逻辑参数不单是获取设备的硬件参数,还会根据系统的设置(如小米、华为等手机可以在系统中控制刘海区域的使用与否)等条件判断当前屏幕的统一的UI布局状态,检查是否需要进行刘海适配。

下面是Github地址

https://github.com/wcl9900/NotchFit

下面是关于Unity使用NotchFit,分两部分:NotchFit库导入和适配代码

安卓接入部分不懂可以看下面链接(最后获取刘海高度用到的)

https://blog.csdn.net/SnoopyNa2Co3/article/details/85060577

已知问题:

1.关屏幕再开屏幕导致重启问题https://blog.csdn.net/SnoopyNa2Co3/article/details/86215782

2.最近测试了android p版本的小米,在横屏情况下p的刘海宽度相当于o的刘海宽度,这个要处理一下

我打包测试过数据和我预想的一样,竖屏情况下返回的和安卓o版本数据一致

3.关于部分安卓第一次安装完后打开游戏,点击home键后,点击图标,游戏重启问题

https://blog.csdn.net/SnoopyNa2Co3/article/details/86309825

第一部分:导入库

1.先下载NotchFit然后解压出来

2.打开eclipse工程(我的工程基于上面安卓接入的工程)在工程下面右键->import

3.这里找到刚刚解压的NotchFit,然后勾选copy projects into workspace

导入完成是这样

Main是适配库

MainActivity是个demo可以不看,可以不导入

4.main工程报错解决 把main的AndroidManifest圈住的删掉

5.MainActivity报错解决,先把styles删掉

删掉style之后AndroidManifest或报错

然后把AndroidManifest圈住的删掉

Ps:其实可以不导入MainActivity这个项目

6.然后点击main工程右键Properties

先选个安卓版本,一定要最新的,然后把Is Library勾上

7.把main的java里面的com文件夹拖到src文件夹

拖完之后如果发现报错就快速修复,如下图

8.最后导入库到工程里面

右键属性在Library添加上面main工程,顺便也把工程使用最新的sdk

第二部分

写获取刘海尺寸,获取到屏幕尺寸然后给回c#用

import com.wcl.notchfit.NotchFit;
import com.wcl.notchfit.args.NotchProperty;
import com.wcl.notchfit.args.NotchScreenType;
import com.wcl.notchfit.config.NotchConfig;
import com.wcl.notchfit.config.OnNotchPropertyListener;
import com.wcl.notchfit.core.OnNotchCallBack;
import com.wcl.notchfit.utils.LogUtils;
import com.wcl.notchfit.utils.SizeUtils;
        NotchFit.fit(this, NotchScreenType.FULL_SCREEN, new OnNotchCallBack() {
            public void onNotchReady(NotchProperty notchProperty) 
            {
                if(notchProperty.isNotchEnable())
                {
                    if(notchProperty.isNotchEnable())
                    {
                    	UnityPlayer.UnitySendMessage("ScreenMgr", "OnScreenAdapation", notchProperty.isNotchEnable() + "|" + notchProperty.getNotchWidth() + "|"+notchProperty.getNotchHeight());     
                    }
                }
            }
        });

代码写完之后导出jar包给unity使用,jar包导出设置,只勾选src文件夹

导完之后直接打包apk测试

我这边测试华为,小米,oppo刘海屏都会返回对应的刘海数据

下面是工程下载地址

链接:https://pan.baidu.com/s/1TcfyDinQPY2P4cUIelgn9w 
提取码:t8i8 

猜你喜欢

转载自blog.csdn.net/SnoopyNa2Co3/article/details/85699987