您的位置:首页 > 移动开发 > Android开发

Android 适配18:9 和 16:9 屏幕尺寸比例的问题

2017-12-29 12:49 344 查看
1.问题:   在华为Mate 9 中,1080X1920分辨率,480dpi,XXhdpi, 1dp = 3px;  按照设计的尺寸去做,最后出来的跟UI 的图,竖向上差距很大,因为我的竖向上同样70dp,显示到手机上很大  最后,问同事才明白,手机是18:9的屏幕,而我们平常用的都是16:9的屏幕;所以根据这个比例 我的竖向上同样的像素占用空间会大;2.解决:  在Mainfest中设置屏幕最大的长宽比
<meta-data
android:name="android.max_aspect"
android:value="2.1"/>
3.引用
随着 Android 机碎片化越来越严重,带有杀马特一般硬件参数的手机也层出不穷。与以往的16:9长宽比不同,近期发布的几款旗舰机器的长宽比还真的是比较杀马特。前几天三星S8刚出没多久,Android Developers Blog 很快就出了一篇文章:Update your app to take advantage of the larger aspect ratio on new Android flagship devices本文主要就是这篇文章的理解性翻译,看官们有空修一波这个 Bug 就好。

两个典型的机子

两款非主流长宽比的机器:三星 S8
18.5:9
LG G6
18:9

会出现的问题

如果从来没有处理过
android.max_aspect
,也没有设置
android:resizeableActivity
true
。那么你的应用在上述两款机型中,就会出现上下黑边的情况:修复前后

如何修复

把这段代码撸
AndroidManifest.xml
<application>
标签里,完事儿
<meta-data android:name="android.max_aspect" android:value="2.1" />

啥意思?

设置最大的长宽比,如果不手动设置
android.max_aspect
,则其使用默认值 1.86,差不多就是 16:9 的样子。Tips肯定有人问我 16/9 明明是 1.78 啊,为什么是 1.86 呢?我自己也算了一遍,我的理解是这样的:9 * 1.86 = 16.7。也就是说多出来的这 0.7 可能是系统为杀马特长宽比的屏幕多预留的一点空间。也就是说只要是 16.7:9 及以下的机子,稍微有一点杀马特没关系,咱惯着你。但这次尼玛三星和LG的这俩旗舰机,超过了 16.7,没办法了,只能手动改了=。=

为啥 2.1?

文章中提到:We recommend that you design your app to support aspect ratios of 2.1 or higher官方推荐 >=2.1,如果为2.1的时候,就是 18.9:9。18.9 至少还是可以坚持一段时间的,也不会有啥厂商做这么长吧?用户又不都是狄仁杰,拿那么长的令牌搞毛。

顺便围观一波

http://stackoverflow.com/questions/43126544/optimise-android-apps-for-phones-with-the-new-ratios-like-the-s8-18-59/43126712#43126712这哥们儿这么快就拿到 S8 测试了。。。。羡慕作者:Boolean93链接:https://www.jianshu.com/p/a386434458be來源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐