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

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Android Studio中的屏幕适配指的是确保您的应用程序在不同尺寸和密度的Android设备上都能正确显示和使用。 要实现屏幕适配,您可以采取以下几个步骤: 1. 使用ConstraintLayout布局,它可以根据屏幕尺寸自动调整控件的位置和大小。 2. 使用dp(密度无关像素)而不是px(像素)来设置控件的大小和间距。这样可以确保在不同密度的屏幕上显示的大小是相同的。 3. 提供不同分辨率的图像资源,例如hdpi、xhdpi、xxhdpi等。这样可以确保在不同密度的屏幕上显示的图像是清晰的。 4. 对于需要滚动的内容,使用NestedScrollView来确保内容可以在各种屏幕上正确滚动。 5. 在布局文件中使用百分比来设置控件的大小,以确保它们在不同屏幕尺寸上都具有相同的比例。 通过这些步骤,您可以确保您的应用程序在各种尺寸和密度的Android设备上都能正确显示和使用。 ### 回答2: Android Studio屏幕适配是为了使在不同分辨率和屏幕尺寸的设备上,应用程序能够保持相同的外观和布局的过程。这是因为手机和平板电脑设备都有不同的设备密度和物理大小,因此在不同的设备上呈现的应用程序可能会有所偏差。在Android开发中,需要为不同的屏幕应用程序布局调整和适配Android Studio提供了一种名为“布局适应性”的机制,以帮助设计师和开发人员在屏幕大小和方向方面保持应用的一致性。布局适应性使用约束来确保布局的元素仍然处于适当的位置,从而使屏幕大小和方向变化对其影响最小。为了适应不同的屏幕大小和方向,开发人员可以使用多个布局文件。每个布局文件都针对特定的设备屏幕大小和/或方向优化。 另一个重要的概念是dp(density-independent pixel),它是一种独立于物理大小的虚拟像素单位。这些像素是基于设备的像素密度(dpi)计算的。像素密度是屏幕上每英寸的像素数量,而dp像素的数量是独立于密度的。 为了进行Android Studio屏幕适配,开发人员应该使用可缩放的矢量图形来替换位图。 开发人员还可以创建备用布局和使用动态资源和尺寸,以确保应用程序在所有设备上都有良好的外观和性能。 总而言之,Android Studio屏幕适配是一项必要的任务,确保应用程序在所有设备上都能以一致的方式运行。 通过使用布局适应机制,dp等虚拟单位和多个布局文件,开发人员可以轻松地实现Android Studio屏幕适配,从而提高用户体验和应用程序的质量。 ### 回答3: 在移动应用开发中,屏幕适配是一个非常重要的问题。由于Android系统存在各种不同的设备尺寸和分辨率,因此开发者必须保证应用在不同的屏幕上显示效果良好。在Android Studio中,开发者可以利用一些机制来实现屏幕适配。 首先,Android Studio提供了多种资源文件夹,开发者可以根据不同的屏幕大小和分辨率创建相应的资源文件夹,如drawable-hdpi、drawable-xhdpi、drawable-xxhdpi和drawable-xxxhdpi等等。这些文件夹中存放的图片资源会根据设备的不同自动加载,以适应不同的分辨率和屏幕大小。 其次,Android Studio也提供了多种布局文件,如普通布局文件、横屏布局文件和竖屏布局文件。开发者可以为同一个界面设计不同的布局文件,以适应不同的方向和屏幕尺寸。同时,Android Studio也提供了各种约束布局和线性布局等工具,可以让开发者更轻松地实现界面的灵活适应。 最后,Android Studio还提供了特定的屏幕适配工具,如Layout Inspector和Device File Explorer等,这些工具可以帮助开发者更好地查看和调整应用在不同屏幕上的效果。同时,还可以在真实设备或虚拟机中进行测试,确保应用在各种不同的设备上都有良好的用户体验。 总之,Android Studio提供了多种机制来实现屏幕适配,开发者需要根据实际情况选择合适的方法来保证应用的展示效果。同时,开发者还应该时刻关注市场上最新的设备和屏幕尺寸,不断改进和优化应用的适配效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值