【问题标题】:How to support different screens sizes AND different densities on Android如何在 Android 上支持不同的屏幕尺寸和不同的密度
【发布时间】:2014-05-01 12:11:34
【问题描述】:

我知道 Android 中资源的 <resources_name>-<qualifier> 命名约定以及如何将它们用于屏幕尺寸(例如 <drawable_xLarge>)或屏幕密度(例如 <drawable xhdpi>)。

我想知道,对于存在的每种屏幕尺寸变化,如何处理支持不同密度的情况。即

<drawable-xlarge>
    <drawable-xhpdi>
    <drawable-hpdi>
    <drawable-mpdi>
    <drawable-lpdi>

<drawable-large>
    <drawable-xhpdi>
    <drawable-hpdi>
    <drawable-mpdi>
    <drawable-lpdi>
...

谁能给我指点一下? 干杯

【问题讨论】:

    标签: android


    【解决方案1】:

    这是一个非常复杂的问题。您应该检查的文档中有一个很好的解释。

    http://developer.android.com/guide/practices/screens_support.html

    否则,你的问题太开放了。

    您将在文档中找到的具体段落是:

    为不同的屏幕尺寸提供不同的布局

    默认情况下,Android 会调整您的应用程序布局以适应当前 设备屏幕。在大多数情况下,这可以正常工作。在其他情况下,您的 UI 可能看起来不太好,可能需要针对不同的屏幕进行调整 尺寸。例如,在更大的屏幕上,您可能需要调整 一些元素的位置和大小,以利用额外的 屏幕空间,或在较小的屏幕上,您可能需要调整尺寸 以便所有内容都可以在屏幕上显示。

    可用于提供特定于尺寸的配置限定符 资源有 small、normal、large 和 xlarge。例如,布局 对于超大屏幕应该进入 layout-xlarge/。

    从 Android 3.2(API 级别 13)开始,上述尺寸组为 已弃用,您应该改用 swdp 配置 限定符来定义您所需的最小可用宽度 布局资源。例如,如果您的多窗格平板电脑布局 至少需要 600dp 的屏幕宽度,你应该把它放在 布局-sw600dp/.使用新技术声明布局 资源在有关声明平板电脑的部分中进一步讨论 适用于 Android 3.2 的布局。

    【讨论】:

    • 在提出我的问题之前,我已经阅读了您提供的参考资料。但我发现的唯一一件事是支持多个屏幕或支持多个密度。没有地方可以解决我关于不同屏幕的不同密度的问题
    • 信息在文档中,我在答案中包含了该段落。这是一个复杂的问题,所以如果你想更好地理解这个问题,我建议你进一步研究。
    • 我已经多次重读该特定页面,但仍不能完全理解。 Android 处理多个屏幕的方式非常灵活(且复杂)。
    【解决方案2】:

    有两种方法可以解决这个问题。

    第一

    如下定义你的drawables。

    drawable-small-mdpi
    drawable-normal-hdpi
    drawable-large-hdpi
    drawable-xlarge-hldpi
    

    参考:Screen Compatability issue in android

    第二

    如果您想提供密度方面的可绘制对象,请按照以下方式进行。

    例如,如果您想将 drawable 设置为 600 dp 的最小宽度,则使用名称创建目录

    drawable-sw600dp
    

    与 720 dp 一样,创建具有名称的目录

    drawable-sw720dp
    

    这样你可以定义密度明智的可绘制目录。

    【讨论】:

      猜你喜欢
      • 2019-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多