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項目會自動以此重新編譯。