长沙做网站要微联讯点很好,域名需要购买吗,wordpress栏目链接地址,珠江现代建设 杂志社网站Unreal 4.27发布Android在刘海屏手机上不能全屏显示问题 Android设置全屏刘海屏全屏设置4.27设置刘海屏在部分手机不能显示问题 Android设置全屏
AndroidManifest.xml文件配置 ...activity android:namecom.epicgames.ue4.GameActivity android:labelst… Unreal 4.27发布Android在刘海屏手机上不能全屏显示问题 Android设置全屏刘海屏全屏设置4.27设置刘海屏在部分手机不能显示问题 Android设置全屏
AndroidManifest.xml文件配置 ...activity android:namecom.epicgames.ue4.GameActivity android:labelstring/app_name android:themestyle/UE4SplashTheme android:configChangesmcc|mnc|uiMode|density|screenSize|smallestScreenSize|screenLayout|orientation|keyboardHidden|keyboard android:resizeableActivityfalse android:launchModesingleTask android:screenOrientationsensorLandscape android:debuggabletruemeta-data android:nameandroid.app.lib_name android:valueUE4 //activityactivity android:name.DownloaderActivity android:screenOrientationsensorLandscape android:configChangesmcc|mnc|uiMode|density|screenSize|orientation|keyboardHidden|keyboard android:themestyle/UE4SplashTheme /meta-data android:nameandroid.max_aspect android:value2.4 /...其中设置android:resizeableActivityfalse增加meta-data android:nameandroid.max_aspect android:value2.4 /默认最大的宽高比是2现在很多手机超过这个宽高比所以可以设置更大的宽高比。 Unreal不能直接修改AndroidManifest.xml文件需要通过Project Setting-Platforms-Android-Advanced APK Packaging进行设置。 实际上我们不需要修改AndroidManifest.xml在Project Setting-Platforms-Android-APK Packaging有选项设置。 以上两个选项设置允许全屏和最大宽高比但不适合刘海屏全屏。因为刘海屏的刘海并不属于常规全屏的一部分。
刘海屏全屏设置
Unreal 4.27是有选项直接设置刘海屏全屏显示的。
但测试很多手机都不能在刘海屏显示。
4.27设置刘海屏在部分手机不能显示问题
问题出在打包的Java程序里 打开上面的java文件可以看到java代码里还有机型测试。 // allow certain models for now to use full area around cutoutboolean BlockDisplayCutout true;if (android.os.Build.MANUFACTURER.equals(HUAWEI)){BlockDisplayCutout false;}else if (android.os.Build.MANUFACTURER.equals(HMD Global)){String model android.os.Build.MODEL;if (model.equals(Nokia 8.1)){BlockDisplayCutout false;}}else if (android.os.Build.MANUFACTURER.equals(samsung)){String model android.os.Build.MODEL;if (model.startsWith(SM-G970) || model.startsWith(SM-G973) || model.startsWith(SM-G975) ||model.startsWith(SC-03L) || model.startsWith(SCV41) || model.startsWith(SC-04L) ||model.startsWith(SCV42) || model.startsWith(SM-N97) || model.startsWith(SM-F700) ||model.startsWith(SM-G98) || model.startsWith(SCV47) || model.startsWith(SCG01) ||model.startsWith(SCG02) || model.startsWith(SC-51A) || model.startsWith(SC-52A) ||android.os.Build.VERSION.SDK_INT 28){BlockDisplayCutout false;}}else if (android.os.Build.MANUFACTURER.equals(Xiaomi)){String model android.os.Build.MODEL;if (model.startsWith(POCOPHONE F1)){BlockDisplayCutout false;}}else if (android.os.Build.MANUFACTURER.equals(OnePlus)){String model android.os.Build.MODEL;if (model.startsWith(IN2020) || model.startsWith(IN2021) || model.startsWith(IN2023) ||model.startsWith(IN2025) || model.startsWith(IN2010) || model.startsWith(IN2011) ||model.startsWith(IN2013) || model.startsWith(IN2015) || model.startsWith(IN2017) ||model.startsWith(IN2019) || model.startsWith(AC2001) || model.startsWith(AC2003) ||model.startsWith(BE2025) || model.startsWith(BE2026) || model.startsWith(BE2028) ||model.startsWith(BE2029)){BlockDisplayCutout false;}}if (BlockDisplayCutout){UseDisplayCutout false;}UseDisplayCutout从打包参数接收设置但以上java代码又做了机型判断如果机型不在目录中UseDisplayCutout会被强制设置为false。 if (BlockDisplayCutout){UseDisplayCutout false;}那么我们只要修改这个代码把强制设置UseDisplayCutout false注释掉应该就可以显示刘海屏了。
直接修改Intermediate\Android\arm64\src\com\epicgames\ue4\SplashActivity.java文件是无用的Intermediate目录下的文件在编译的时候会被新生成代码覆盖掉的。 我们需要把Intermediate\Android\arm64\src\com\epicgames\ue4\SplashActivity.java文件拷贝到Build\Android\src\com\epicgames\ue4\SplashActivity.java如果已经有了就不用拷贝了然后修改Build\Android\src\com\epicgames\ue4\SplashActivity.java才行。 if (BlockDisplayCutout){// UseDisplayCutout false;}经过以上设置实际测试可以在OPPO手机上正常显示刘海屏全屏了。