如何支持最小宽度的不同屏幕尺寸?

How to support different screen sizes with smallest width?

我查看了如何支持屏幕尺寸,但是 android 关于屏幕尺寸支持的指南在解释上非常含糊。

所以我的问题是如何使用最小宽度限定符支持不同的屏幕尺寸?

我有 dimens.xml 个文件,其值为 sw320dp、sw480dp、sw600dp 和 sw720dp。

320dp:典型的 phone 屏幕(240x320 ldpi、320x480 mdpi、480x800 hdpi 等)。 480dp:大 phone 屏幕 ~5" (480x800 mdpi)。 600dp:7 英寸平板电脑 (600x1024 mdpi)。 720dp:10 英寸平板电脑(720x1280 mdpi、800x1280 mdpi 等)。

这在 android 文档中有说明,但是当我尝试使用模拟器 Nexus one 3.7 英寸 hdpi 时,它使用与 Nexus 5 相同的尺寸值,即 5.0 英寸 xxhdpi。

支持所有屏幕尺寸的推荐方式是什么?

谢谢

Nexus 5 的屏幕尺寸为 360x640 dp。在您的定义集中不大于 360 的 最小宽度 的最大值是 sw320dp。这就是两个模拟器使用相同值的原因。

然而,这主要是跑题了。支持所有屏幕尺寸的正确方法是创建可以拉伸和收缩以填充任何 phone 的布局。当然,在某些情况下,为不同的屏幕尺寸定义不同的尺寸可能是有意义的,但是您可以通过简单地使用 LinearLayout 和权重或 ConstraintLayout 和匹配约束来做很多事情。

根据我自己的专业经验,使用 swXXXdp 的最常见原因是为 phone 和平板电脑创建不同的基本布局。也就是说,每个 activity 在 res/layout/ 中都有一个布局 XML 文件,但有些在 res/layout-sw600dp/ 中也有一个特定于平板电脑的布局文件。根据设备尺寸定义尺寸是非常不常见的。