Android 适配18:9 全面屏黑边

在使用18:9等非传统16:9的手机面世后, 部分应用出现了上下黑边

正如小米mix2发布会所说,谷歌官方支持的默认高宽比就是16:9,所以在高宽比更高的手机上就只能显示16:9了,自如就出现大黑边了

解决方案

1. 设置 android:resizeableActivity

# compileSdkVersion 需要设置为 24以上,不然报错 resizeableActivity 属性不存在
compileSdkVersion : 24

# application 设置 resizeableActivity 属性为 true
<application  
        ...
        android:resizeableActivity="true">

这种方案会开启Android N分屏功能,所以需要适配下每个 Activity 自适应高度

2. 设置 meta-data:android.max_aspect

# 设置最大高宽比为 2.1
<application  
        ...>
        <meta-data
            android:name="android.max_aspect"
            android:value="2.1" />

</application>  

通过反编译看微信、QQ、支付宝设置的max_aspect如下:

<meta-data  
            android:name="android.max_aspect"
            android:value="1074161280.000000" />

这样设置也可以正常显示,目前不是很明白1074161280.000000 的意义,猜测可能是某个类型最大值之类的?有清楚的同学还望不吝赐教

参考