【问题标题】:Android Layout design principles [closed]Android 布局设计原则 [关闭]
【发布时间】:2014-06-04 05:55:24
【问题描述】:

我一直在研究针对不同屏幕尺寸、屏幕密度和方向设计布局的最佳方法,但我越来越困惑。

1.设计密度与屏幕尺寸
我读过这个link

现在在设计姜饼时应该考虑什么。每个文件夹中的布局都说LDPI, HDPI and MDPI。但这会增加整个应用程序的大小。

现在我已经不再考虑 LDPI。但现在我们也有XHDPI and XXHDPI。 那么我们如何在设计所有页面的同时保持合理的大小呢?

屏幕尺寸、密度或分辨率应该优先考虑什么?

图片可以使用9-patch images创建它们的最佳工具是什么?

2.横向与纵向。

现在在这个布局方程中,如果我们为屏幕方向包含不同的布局,应用程序会变得更庞大,工作也很乏味。

Creating smaller xmls and including them is one good solution 但即便如此,考虑到所有不同的类型,它仍然变得乏味。特别适用于 Android 4 及更高版本,每个片段都有不同的布局,

我的问题是——考虑到以上所有因素,设计布局的最佳和最有效的方法是什么。

【问题讨论】:

  • 你在哪里接触到这个?如果您回复将不胜感激:)
  • 我使用相同的布局页面,但不同的分辨率有单独的dimen.xml和style.xml

标签: android android-layout google-play android-manifest android-screen-support


【解决方案1】:

您可以尝试以下链接: 问题似乎很广泛。但你可以阅读这个。

  1. Welcome to Android Design,

  2. Is there a standard layout for an Android app or should I design mine from first principles?,

  3. 10 Tips For Android UI Design,

对于 9 补丁图像,您可以看到我的这篇文章。

  1. Utility of android nine patch

  2. Education Guidelines

为了支持基于多设备布局,

请通过Supporting Multiple Screens这个链接:

用于多布局组件

res/layout/my_layout.xml             // normal screen size ("default")
res/layout-small/my_layout.xml       // small screen size
res/layout-large/my_layout.xml       // large screen size
res/layout-xlarge/my_layout.xml      // Hd tablet

用于定位。

        res/layout/              # default (portrait)
            main.xml
        res/layout-land/         # landscape
            main.xml
        res/layout-large/        # large (portrait)
            main.xml
        res/layout-large-land/   # large landscape
            main.xml


1. You can also use `qualifier` for having multipal resource. 

【讨论】:

  • 感谢您提供的 10 个提示链接。它的信息量很大。这很好,谢谢
  • 你好 Lavekhush ,我们之前已经尝试过,但是某些设备这种机制失败了。
【解决方案2】:

Play 商店允许您发布具有不同硬件的多个 APK 的目标设备。您要定位的设备属性在每个不同 APK 的清单中指定。对于不同的屏幕密度,您可以使用<compatible-screens> 元素。例如,针对具有ldpi 分辨率的小型设备的应用程序将包括:

<compatible-screens>

    <screen android:screenSize="small" android:screenDensity="ldpi" />

</compatible-screens>

通过这种方式,您可以为针对不同设备的同一应用程序编译和构建不同的 APK,并根据每个单独的 APK 所针对的设备分辨率在 res/drawable 目录中包含不同大小的图像。不同的 APK 可以在 Play 商店中以相同的应用程序标题发布,并且将由 Play 商店服务 APK(即每个 Android 设备上的 Play 商店应用程序)根据该设备的硬件自动过滤。

参考资料:

1. Multiple APK Support.

2. Distributing to Specific Screens.

3. Filters on Google Play.

【讨论】:

    【解决方案3】:

    您可以做的一件事是为每种类型的屏幕尺寸/分辨率创建不同的文件夹,例如

    价值观- - ldpi - mdpi - hdpi -xhdpi - 诺皮 -tvdpi

    并且它们在值内部可以有诸如维度、整数、布尔值等文件夹。

    它们在您的 XML 布局中使用诸如 android:width="@integer/size_for_this" 之类的东西

    Android 将根据设备 DPI 知道要引用哪个文件夹。您还可以指定其他类型的文件夹,例如按宽度、高度等...

    更多信息在Official documentation Providing Resources

    【讨论】:

    • 姜饼也可以这样吗?
    • 在 API lvl 4 中添加了基于屏幕大小的资源文件夹,在 API lvl 8 中添加了密度。所以是的,可以在 Gingerbread 中使用它。我为 Android 文档提供的官方链接详细解释了每个 API 中添加的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2011-02-16
    相关资源
    最近更新 更多