【问题标题】:Design layout to support multiple screen设计布局以支持多屏
【发布时间】:2015-07-01 13:13:06
【问题描述】:

我在互联网上搜索了很多关于此主题的内容并找到了一些有用的链接,但仍然无法设计支持所有设备尺寸和分辨率的 UI。我已经从开发者网站Supporting Multiple Screens 和这个blog 阅读了关于这个主题的详细信息,关于最小宽度技术。目前我已经关注this approach,在其中我创建了一个布局文件夹并为不同文件夹中的每个屏幕密度设置尺寸。目前我的 res 文件夹看起来像这样

我创建了一个布局文件夹并在默认值文件夹中为正常屏幕尺寸定义了其尺寸(即 Nexus S 4.0 英寸 480x800 hdpi),然后我将该尺寸文件复制到 values-sw600dp 文件夹中并调整了平板电脑的尺寸这对于 7 英寸平板电脑来说是正确的。但现在我正在尝试为其他手机/设备设计,如 Galaxy Nexus 4.7 英寸 720x1280 xhdpi 或其他大尺寸手机,如 Galaxy s3、s4 等,但不知道该怎么做。如果我将 dimen 文件放入 values-sw320dp-xhdpi 文件夹以针对 Galaxy Nexus 4.7 英寸 720x1280 进行调整,它也会针对普通(Nexus S 4.0 英寸 480x800 hdpi)屏幕进行更改。所以我真的对这些设计限定词感到困惑。任何人都可以描述支持所有屏幕尺寸的确切方式或标准方法/布局层次结构吗?

【问题讨论】:

  • 确保您不会对像素和 dp 感到困惑。使用 Galaxy Nexus 4.7 720x1280 xhdpi (so 2x),你的最小宽度仍然小于 480dp
  • 所以这意味着 Galaxy Nexus 4.7 720x1280 xhdpi 和 Nexus S 4.0inch 480x800 hdpi 将使用相同的文件夹,即 values-sw480dp?

标签: android android-layout


【解决方案1】:

您可能会混淆像素和与密度无关的像素(dp 或 dip)。

Galaxy Nexus 720x1280 像素 xhdpi (2x) 表示 360x640 的 dp 值,因此最小宽度 (sw) 为 360。 Nexus S 4.0 英寸 480x800 hdpi (1.5x) 最小宽度为 320

所以这两个都会从 values-sw320 中获取值

【讨论】:

  • 好的,现在我明白你的意思了,但是我创建单个布局文件夹并具有多个值文件夹以支持多个屏幕的方法是否正确?
  • 这取决于你做什么。如果您的布局在所有设备上看起来都一样,只是在其他维度上,那是正确的。如果您在大型平板电脑上的布局与在手机上的布局不同,例如平板电脑上有多个片段而手机上只有一个片段,那么您应该创建不同的布局文件
【解决方案2】:

为不同的屏幕尺寸创建不同的布局文件夹,例如layout-large、layout-small、layout-xlarge、layout-xxlarge等。但是我不知道你在xml文件中使用了哪种布局。 始终尝试使用 LinearLayout 和 RelativeLayout。不要在 xml 文件中使用像素。

在清单中添加支持屏幕

<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:requiresSmallestWidthDp="integer"
              android:compatibleWidthLimitDp="integer"
              android:largestWidthLimitDp="integer"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2016-07-17
    • 2013-06-25
    • 1970-01-01
    相关资源
    最近更新 更多