unity5.x适配Android P刘海屏方案

技术分享 专栏收录该内容
16 篇文章 0 订阅


最近项目有需要适配Android P的刘海屏,尝试在androidManifest.xml中进行了各种配置发现系统仍然自动两边留黑,刘海附近默认不绘制,最后方案是通过修改启动activity进行解决:

修改启动Activity

以下是MainActivity.java的源码:

import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import com.unity3d.player.UnityPlayer;
import com.unity3d.player.UnityPlayerActivity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;

public class MainActivity extends UnityPlayerActivity{
    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.P)
        {
            try
            {
                Window window = getWindow();

                //设置页面全屏显示
                WindowManager.LayoutParams lp = window.getAttributes();
                lp.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
                
                //设置页面延伸到刘海区显示
                window.setAttributes(lp);
            }
            catch (Exception e)
            {
                Log.e("activity", "not support layoutInDisplayCutoutMode!");
            }
        }
        else
        {
            Log.w("activity", "not support layoutInDisplayCutoutMode!");
        }
    }
}

通过重载UnityPlayerActivity,在onCreate中对刘海屏进行延伸显示设置.

注意!!
layoutInDisplayCutoutMode 接口只有Android P才有,所以需要对SDK版本号进行判断,否则Android P以下的系统运行会崩溃.

因此必须加入如下判断代码:

 if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.P)

生成jar包替代启动Activity

关于如何通过AndroidStudio生成jar包来进行启动activity替换,请见如下链接:
https://www.jianshu.com/p/8256c0da444a?tdsourcetag=s_pctim_aiomsg
在这里插入图片描述

unity2018的方案

unity官方在新版本中做了很方便的处理,只需要在Building Setting中把

Render outside safe area

勾上就可以了
在这里插入图片描述

  • 操作系统:win10
  • uniy版本:5.5.6f1
  • AndroidStudio版本:3.3.1
  • 1
    点赞
  • 5
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值