unity5.6.5适配Android P刘海屏,两侧去黑边
问题:
如果不适配安卓P的话,有刘海屏的手机,刘海两侧会有黑边,
两侧默认是不渲染的,所以要渲染出来就得先适配一下
解决方法:
我是用eclipse去对接的,在onCreate方法中,加入一下代码即可
//Android P 就是 Android 28 对应安卓9
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.P)
{
try
{
Window window = activity.getWindow();
//设置页面全屏显示
WindowManager.LayoutParams lp = window.getAttributes();
lp.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
//设置页面延伸到刘海区显示
window.setAttributes(lp);
}
catch (Exception e)
{
BXLogTools.DebugLog( "0 not support layoutInDisplayCutoutMode!");
}
}
unity中设置适配刘海方式
只要在PlayerSetting勾选上Render outside safe area即可(最小的Unity版本需要Unity2018.3),该版本以下可以使用上面的方式适配
扩展:
如果项目中安卓版本不是Android p(安卓9 | target 28),则引用不到这些属性,
更改Android 版本方法:
方法1:
找到项目根目录下project.properties文件,打开修改target=android-28即可
方法2:
右键工程—>Build Path—>Configure Build Path… 在左侧选择Android,然后右边会出现很多可以选的版本,选择一个作为Target SDK,点OK项目会自动以此重新编译。