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

标签: android
1746人阅读 评论(0) 收藏 举报
分类:

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 就好。

两个典型的机子

两款非主流长宽比的机器:

  1. 三星 S8 18.5:9
  2. LG G6 18:9

会出现的问题

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

修复前后
修复前后

如何修复

把这段代码撸 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
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

查看评论

Android手机 全面屏(18:9屏幕)适配指南

Android手机 全面屏(18:9屏幕)适配指南 点击打开链接 从小米MIX 1发布以来,越来越多所谓“全面屏”手机发布,如三星S8,小米MIX2,VIVO X20,Google P...
  • wqbs369
  • wqbs369
  • 2017-11-27 09:48:51
  • 8383

MIX2 适配看这一篇就够了,18:9 只需一行代码

今天同事已经拿到 minx 2了(F码通道),但是app 的状态栏适配不够好,空出很大一块出来。 直接上代码 AndroidManifest.xml只需在 AndroidManifest.xml...
  • yy1300326388
  • yy1300326388
  • 2017-09-15 15:35:18
  • 5320

Android适配全面屏,三星S8的18.9,小米mix全面屏

一般手机的屏幕纵横比为16:9,如1080x1920、1440x2560等,其比值为1.777777……,全面屏手机出现之前,Android中默认的最大屏幕纵横比(maximum aspect rat...
  • qq_37237245
  • qq_37237245
  • 2017-06-16 18:54:22
  • 4737

Android 适配18:9全面屏

2017年是全面屏爆发的大热潮,18:9屏幕的相拥而来,在使用18:9等非传统16:9的手机之后,部分手机应用出现了上下黑边。 解决方案: 1.设置 Android:resizeableAct...
  • zouzhigang96
  • zouzhigang96
  • 2018-01-08 16:27:19
  • 1245

Android屏幕适配全攻略(最权威的官方适配指导)

Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因、重要概念、解决方案及最佳实践,我相信如果你能认真的学习...
  • bz419927089
  • bz419927089
  • 2015-05-19 11:34:17
  • 115630

android 点九PNG技术 适应不同分辨率 完美显示效果

.9.png是一种非失真性压缩位图图形文件格式。PNG格式是非失真性压缩的,允许使用类似于GIF格式的调色板技术,支持真彩色图像,并具备阿尔法通道(半透明)等特性。现在有很多人使用PNG格式于互联网及...
  • geniuseoe2012
  • geniuseoe2012
  • 2012-08-23 14:18:09
  • 11127

android各版本分辨率适配(项目亲测)

1. 写在前面本人项目使用的如下适配方式,已经迭代了几个版本,从开始的各种适配问题,到现在很少有人反馈手机适配问题,自己也在4-5个真机测试没什么问题。这种适配方式的理论支持我最开始是跟着鸿洋大神 ...
  • guozhaohui628
  • guozhaohui628
  • 2017-05-13 20:12:27
  • 5435

Android全面屏适配

什么是全面屏概念很多人可能把全面屏跟曲面屏混淆,其实这是两个不同的概念。一般手机的屏幕纵横比为16:9,如1080x1920、1440x2560等,其比值为1.777777……,全面屏手机出现之前,A...
  • u014738140
  • u014738140
  • 2017-08-08 15:06:24
  • 11397

手机屏幕比例秘密:16:9还是15:9

魅族黄章——也就是大家口中的J.Wong在魅族论坛与微博上发起了一项关于产品屏幕比例的投票,魅族下一代产品是选择主流的16:9还是不太常见的15:9。这引发了各方关注,有评论说这是黄章自己给自己找台阶...
  • o279642707
  • o279642707
  • 2018-03-08 11:17:53
  • 244

根据手机屏幕,设置视频区域大小,达到16:9的显示效果

private void setVideoParams(MediaPlayer mp, boolean isLand) { ViewGroup.LayoutParams pa_rl =...
  • xiyangyang8110
  • xiyangyang8110
  • 2017-01-05 21:04:56
  • 1650
    个人资料
    等级:
    访问量: 5万+
    积分: 678
    排名: 7万+
    最新评论