Android,10.1 和 9.7 英寸显示器的不同布局

Android, different layout for 10.1 and 9.7 inch displays

我已经为特定的 10.1 英寸显示器 (2560x1600) 开发了一个应用程序,并且我的布局文件是为适应该特定分辨率而编写的。

现在我需要制作相同的应用程序以在n 9.7 英寸显示屏 (2048x1536) 上工作。 这是我第一次必须做这样的事情,我不知道哪种方法是正确的。在新平板电脑上使用实际的布局文件有点乱,没有什么是正确的,就像在旧平板电脑上放大一样。

我读过一些关于为不同布局创建文件夹的内容,但问题是如果我创建文件夹“layout-sw720dp” 两台平板电脑都使用相同的布局,我不想这样做。 "different layout files" 是正确的方法吗?如果是这样,我如何为特定的 "resolution" 或其他任何内容指定布局?

还有其他方法可以解决这个问题吗?

谢谢!

如果您的布局设计得当 layout-sw720dp 应该可以完美地处理这两款平板电脑。

how can I specify a layout for an specific "resolution" or whatsoever?

这部分有两种宽度前缀。 layout-wXXX 适用于宽度恰好为 XXX 的设备,仅此而已。然而,layout-swXXX 适用于宽度至少为 XXX 的设备。

同样,精心设计的 layout-sw720dp 文件夹应该可以满足您的需求。

在 android studio 应用程序的 app 文件夹中,转到 res-> layout,右键单击 select New -> Layout 资源文件。在新的资源文件 window 上,给文件名 dimens。 在可用限定符 select 维度上并将其推入所选限定符并将维度指定为 2048x1536。您可以使用此文件指定尺寸为 2048x1536 的平板电脑的布局。

在Android中,有不同类型的属性限定符,这有助于我们为不同的types/resolutions设备设计应用程序。然而,在这种特殊情况下,对于几乎所有限定符类型,两种分辨率都属于相同的属性。

它们都属于 xlarge 设备的 xhdpi 括号。所以你不能使用这些限定词。但是有一点不一样,那就是两个分辨率的 shortest width 限定词。

2560 x 1600 的最短宽度为 800dp2048 x 1536[=33 的最短宽度为=] 将是 768dp。所以可以使用layout-sw<>dp属性来区分这两个设备。

对于 10.1 英寸显示器 (2560 x 1600):layout-sw800dp
对于 9.7 英寸显示屏 (2048 x 1536):layout-sw768dp

当你使用layout-sw720dp文件夹时,两台设备都会使用相同的文件夹,因为两台设备的最短宽度都大于720。检查这个developer doc section(尤其是table) 获取更多信息。