【问题标题】:Explain the difference between drawable, drawable-ldpi, drawable-mdpi and drawable-hdpi解释drawable、drawable-ldpi、drawable-mdpi和drawable-hdpi的区别
【发布时间】:2011-06-16 13:56:19
【问题描述】:

我对每个目录的用途有一个粗略的了解,但我并不是很清楚这个概念,并且我有一些具体的问题。

例如,每个目录的目标 DPI 是多少?当您创建资产时,它应该是目标 DPI 还是更正常的 72dpi 屏幕 DPI?如果您的目标是多个设备,是否适合将 PNG 放入可绘制对象中,或者您是否应该始终为特定屏幕稍微定制多个版本?

谢谢。

【问题讨论】:

  • 我希望得到的不仅仅是文档链接。我已经阅读/浏览了 screen_support 文档,但我仍然有上述具体问题。

标签: android android-screen-support android-drawable


【解决方案1】:

正如其他人所建议的那样,Android 在线文档对此有很好的文章。不过,我将尝试在此处列出一些快速且有用的提示:

  1. 考虑 MDPI 是1。那么,LDPI 为0.75,HDPI 为1.5。这意味着如果您有一个可绘制对象,例如,MDPI 屏幕上的50x50,则它必须在 LDPI 屏幕上为 ~37x37,在 HDPI 屏幕上为75x75才能出现每个屏幕上的物理尺寸大致相同(即,如果您将尺子放在屏幕上,则为 2 厘米)。此外,您的计算机屏幕很可能是 MDPI,这就是为什么建议从 MDPI 可绘制对象开始然后调整它们的大小:可绘制对象的物理尺寸将非常接近您的计算机屏幕和 MDPI Android 设备。如果您在计算机和 HDPI 设备上查看 HDPI 可绘制对象,您会注意到它在电脑屏幕。
  2. 如果您不为每种密度提供特殊的可绘制对象,Android 将自动缩放最接近的可用对象。
  3. 您不应认为设备的 DPI 与屏幕尺寸和/或像素数和/或分辨率和/或纵横比有任何关系。设备可以非常小并具有 HDPI 屏幕,也可以非常大且具有 LDPI 屏幕。这种密度差异化的全部意义在于让事物在所有设备上看起来尺寸相同适合所有设备。例如,如果一个可绘制对象在一个 MDPI 设备上填满了整个屏幕,则不要期望它在另一个 MDPI 设备上做同样的事情。此外,不要期望在不同的 DPI 设备上“看到相同的东西”。大多数 HDPI 设备实际上比低 DPI 设备拥有更多空间。例如,如果ListView 可以在 MDPI 设备上显示 5 个项目,它可能能够在 HDPI 设备上显示 6 个项目,尽管 ListView 项目具有相同的密度无关(即 1.5 倍) HDPI 上大于 MDPI)高度。

我可能有点跑题了,但这些都是我通过撞到它们及时学到的东西。只是想挽救别人的头痛:)

【讨论】:

  • 这可能也会有所帮助:blog.blundell-apps.com/…
  • 感谢@Felix 的清晰解释。我已经阅读了许多其他帖子,但无法理解!这对我来说真的很清楚!
  • 补充一点,XHDPI 是2,XXHDPI 是3。因此,对于您在 MDPI 屏幕上为 50x50 的可绘制对象的示例,它必须在 XHDPI 屏幕上为 100x100,在 XXHDPI 屏幕上为 150x150
【解决方案2】:

抱歉,Android 有一个很棒的在线文档,其中包含示例,因此对于此类问题,答案是:

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

【讨论】:

    【解决方案3】:

    每个文件夹都没有确切的 DPI 值。每个文件夹都与某个范围相关。见这里:http://developer.android.com/guide/practices/screens_support.html

    这些目录必须包含针对某些屏幕密度优化的可绘制资源。您可以只为 HDPI 或任何其他内容保留一个可绘制对象,但在具有其他 DPI 设置的设备上,图像会以某种方式调整大小,并且需要时间/资源。此外,低 DPI 图像在具有 HDPI 的设备上看起来会很差。

    【讨论】:

      【解决方案4】:

      由于屏幕尺寸和分辨率不同,Android 允许您根据文件夹排列可绘制图像。高 dpi 显示的图像应放置在 hdpi 中,mdpi 和 ldpi 类似。如果操作系统不匹配任何 dpi 类别或在特殊 dpi 目录中未找到资源,则 drawables 的默认文件夹是 drawables 系统从 drawables 目录中选择资源。

      大小不准确,130dpi以内为小,130~180为mdpi,180~200为hdpi,高者为xdpi。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-02-08
        • 2011-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-01
        相关资源
        最近更新 更多