Unity屏幕适配之——全面屏

三星S8(18.5 : 9)两边会有黑边。在Manifest文件中修改如下参数可以解决这个问题。

<meta-data android:name="android.max_aspect"
              android:value="2.2"/>
//(2.2这个数字可以改成2.1以上的数字。
// 通常全面屏为18:9或19:9)

如何修改这个文件,有两种办法。

方法一:解包后修改代码,然后重新打包。
需要的工具及环境:JDK,AndroidSDK,以及apktool。
配置好环境后,打apk包,然后使用apktool解包。
apktool d xxx.apk
然后修改解包后的Manifest文件,再重新打包。
apktool b app -o xxxnew.apk
重新打包后还需要再签名
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore yourkey.keystore -storepass yourpass xxxnew.apk aliasName
需要三个参数:keystore文件名,密码,以及alias名。运行命令后需要输入aliasPw,即可重新签名。注意,命令行输入aliasPw的地方是看不到你输入的密码的。

方法二:在Assets/Plugins/Android下找到该文件,添加即可。

没试过方法二,因为不清楚是否会在合并Manifest时出问题;通过方法一修改了Manifest,在三星S8上运行,可以很好适配,没有黑边。但是在小米mix2x上原本是适配的,现在反而出现了黑边。又在Manifest里加了这一句
<application android:resizeableActivity="true"
这样就可以同时适配三星S8和小米mix2x了。

另外,游戏中通过Handheld.PlayFullScreenMovie来播放的过场视频,还是有黑边,这和视频本身的分辨率大小有关。可以根据需求调整FullScreenMovieScalingMode这个参数。

    原文作者:我的人生不可能这么萌Q_Q
    原文地址: https://www.jianshu.com/p/4c01f7e25122
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞