【问题标题】:Android, different layout for 10.1 and 9.7 inch displaysAndroid,10.1 和 9.7 英寸显示器的不同布局
【发布时间】:2017-05-05 12:02:15
【问题描述】:

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

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

我读过一些关于为不同布局创建文件夹的内容,但问题是如果我创建一个文件夹“layout-sw720dp”,两个平板电脑都使用相同的布局,而我不会想要。 “不同的布局文件”是正确的方法吗?如果是这样,我该如何为特定的“分辨率”或其他指定布局?

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

谢谢!

【问题讨论】:

    标签: android android-layout layout tablet screen-resolution


    【解决方案1】:

    在 Android 中,有不同类型的属性限定符可以帮助我们为不同类型/分辨率的设备设计应用程序。但是,在此处的这种特殊情况下,对于几乎所有限定符类型,两种分辨率都将属于相同的属性。

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

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

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

    当您使用layout-sw720dp 文件夹时,两个设备将采用相同的文件夹,因为两个设备的最短宽度大于 720。查看此developer doc section(尤其是表格)了解更多信息。

    【讨论】:

    • 就是这样!所以“xxx”dp 是分辨率 / 2 ?而且,当我创建具有此分辨率和屏幕尺寸的新虚拟设备时,android studio 会自动选择“800dp”版本而不是 768dp 版本,这是怎么回事? (也许这里值得另一个问题......)
    • 不,它并不总是分辨率/2。它将基于具有分辨率的设备的密度。这里就是这样。 xhdpi = 320dp = 2 x mdpi (Base density)
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      如何为特定的“分辨率”或其他指定布局?

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

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

      【讨论】:

      • 嗯,我认为你是对的,Eric,它的设计不是很好,因为它的设计考虑到了一个非常特定的设备,所以没有灵活性。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-19
      • 1970-01-01
      • 2014-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多