支持多个屏幕 - 设备选择了错误的布局

时间:2013-08-25 08:42:02

标签: android android-layout screen-resolution

我在应用程序中得到了一点,我需要对多重屏幕进行布局调整。 这些是我用于布局的文件夹:
(每个都有景观版本)
布局
布局为800x480
布局sw600dp
布局sw800dp

大多数工作正常,问题在于主布局文件夹。 当我在Galaxy S3或Nexus 4上运行应用程序时,设备选择800x480布局,尽管这些设备具有更高的分辨率。所以从不挑选主要布局.. 如果我理解正确,像“layout-800x480”这样的文件夹应该只适用于具有完全相同分辨率的设备..我错了吗?

2 个答案:

答案 0 :(得分:0)

我认为文件夹名称唯一有效的说明符(分辨率明确)是:

  • 最小屏幕宽度(即:sw600dp)
  • 可用的屏幕宽度(即:w600dp)
  • 可用屏幕高度(即:h600dp)

这样可以解释为什么要忽略layout-800x480文件夹

答案 1 :(得分:0)

不同的布局文件夹

res/layout/my_layout.xml             // layout for normal screen size ("default")
res/layout-small/my_layout.xml       // layout for small screen size
res/layout-large/my_layout.xml       // layout for large screen size
res/layout-xlarge/my_layout.xml      // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation

将以下代码添加到清单文件中

<supports-screens android:resizeable=["true"| "false"]
          android:smallScreens=["true" | "false"]
          android:normalScreens=["true" | "false"]
          android:largeScreens=["true" | "false"]
          android:xlargeScreens=["true" | "false"]
          android:anyDensity=["true" | "false"]
          android:compatibleWidthLimitDp="integer"
          android:largestWidthLimitDp="integer"/>

了解更多信息click here