【问题标题】:Android xxx-hdpi real devicesAndroid xxx-hdpi 真机
【发布时间】:2014-02-22 12:16:48
【问题描述】:

我要发布我的应用,它是一个 1.2Mb 的 apk,包含 4 种不同格式(ldpi、mdpi、hdpi、x-hdpi)的大约 120 个图标。

如果我添加 xx-dpi 和 xxx-hdpi 图标,apk 会变大并且加载时间会增加。
那里有许多内存非常低的入门级设备,我希望我的应用程序可以在任何地方运行。

我真的需要添加 xx-hdpi 吗?

还有需要 xxx-hdpi 的真实设备吗?

【问题讨论】:

  • 加载时间不会随着您的应用程序的大小而增加,这完全取决于您一次执行了多少操作。不要同时做所有事情,你的应用会很好。
  • @RED_ 是的,在使用所有这些大图标通过 adb 进行测试时,我似乎看到速度变慢了,但也许它正在安装......

标签: android icons dpi android-icons


【解决方案1】:

我认为您应该关注最流行的屏幕密度,即 hdpi、xhdpi 和 xxhdpi。请参阅此link,了解当前全球每种密度的平均分布情况。

【讨论】:

    【解决方案2】:

    忘掉一切,让它变得简单!

    只需将最高分辨率的图像存储在一个文件夹中。在drawable-hdpi中,并从其余的drawable文件夹中删除其他图像。

    我已经在各种设备上对其进行了测试,它就像一个魅力......

    【讨论】:

    • 投了反对票,因为这没有提供额外的信息。有自动缩放是的,这就是问题的背景。仅供参考:xxxhdpi 是目前定义的最高分辨率。
    【解决方案3】:

    您确实不需要大多数图像都需要 xxxhpdi。您的启动器图标只需要 xxxhdpi。请看http://developer.android.com/guide/practices/screens_support.html

    您不应将 xxxhdpi 限定符用于启动器图标以外的 UI 元素。

    在上面的引用中很清楚。在他们提供的示例文件夹布局中,它们显示了 res/drawable 文件夹的所有密度,直到 -xxhdpi,但随后它们显示了 res/mipmap 文件夹,直到 -xxxhdpi。这里有更多引用:

    xxxhdpi 超超超高密度 (xxxhdpi) 用途的资源 (~640dpi)。仅将其用于启动器图标,请参见上面的注释。

    mipmap-xxxhdpi 限定符仅用于提供在 xxhdpi 设备上看起来比平常更大的启动器图标。您无需为所有应用的图像提供 xxxhdpi 资产。

    【讨论】:

    • 有趣:"180x180 (3.0x) for extra-extra-high-density"。嗯,1.0x 是 48 像素,所以 48 * 3 = 144。180 是从哪里来的?
    【解决方案4】:

    你不应该真的需要xxxhdpi。之所以引入它是因为在 nexus 5 的启动器上缩放启动器图标的方式

    编辑 当我在 2014 年 1 月回答时,Nexus 5 是唯一使用xxxhdpi 的设备。现在包括 Nexus 6 和 LG G3 在内的许多设备都在使用它。因此,最好将其包含在您的应用中。

    【讨论】:

    【解决方案5】:

    我们必须为 Nexus 6、LG G3 和三星 Galaxy Note 4 的应用添加 xxxhdpi。将来会有更多 xxxdhpi 设备。

    【讨论】:

    • 当然,这种增加像素密度的疯狂趋势永远不会停止。
    【解决方案6】:

    来自 Android 图标文档本身:

    某些设备会将启动器图标放大多达 25%。例如,如果您的最高密度启动器图标图像已经是超高密度,则缩放过程将使其看起来不那么清晰。所以你应该在 drawable-xxxhdpi 目录中提供一个更高密度的启动器图标,系统使用它而不是放大一个较小版本的图标。

    注意:drawable-xxxhdpi 限定符仅用于提供在 xxhdpi 设备上看起来比平常更大的启动器图标。您无需为应用的所有图像提供 xxxhdpi 资源。

    更多信息:http://developer.android.com/design/style/iconography.html

    【讨论】:

    【解决方案7】:

    您不需要 ldpi,因为 Android 将 hdpi 缩小为 ldpi。

    来自https://developer.android.com/design/style/iconography.html

    注意:Android 还支持低密度 (LDPI) 屏幕,但您通常不需要创建这种尺寸的自定义资源,因为 Android 会有效地将 HDPI 资源缩小 1/2 以匹配预期大小。

    【讨论】:

    • 谢谢,这是一个有用的信息。
    【解决方案8】:

    不知道有没有需要xxx-hdpi的设备,但是xx-hdpi还不是很常用。但是 ldpi 也是如此,几乎没有设备仍然需要 ldpi。如果你只做 mdpi、hdpi 和 xhdpi 就可以了。如果设备需要更大或更小的东西,android 只需将其缩放到合适的大小。

    以下是 Android 对此的评价:

    为不同的屏幕密度提供不同的位图可绘制对象

    默认情况下,Android 会缩放您的位图可绘制对象(.png、.jpg 和 .gif 文件)和九补丁可绘制对象(.9.png 文件),以便它们在 每个设备上的适当物理尺寸。例如,如果您的 应用程序仅为基线、中等提供位图可绘制对象 屏幕密度 (mdpi),然后系统在 高密度屏幕,并在低密度时缩小它们 屏幕。这种缩放会导致位图中出现伪影。确保 你的位图看起来最好,你应该包括替代版本 不同的分辨率,不同的屏幕密度。这 可用于密度特定资源的配置限定符 分别是 ldpi(低)、mdpi(中)、hdpi(高)和 xhdpi(超高)。 例如,高密度屏幕的位图应该进入 drawable-hdpi/.

    您可以在此处找到文档:

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

    希望对你有帮助

    【讨论】:

    • 我以为 nexus 5 使用的是 xx-hdpi 类别,不是吗?
    • 我不确定,我知道 xperia z 可以。这是一个可以解释的答案:stackoverflow.com/a/13215729/2767703
    • 但是 xhdpi 在 xx-hdpi 上看起来不会很草率吗?现在 iPhone6 Plus 已经使用了大约 xx-hdpi 的 3x 资源,我认为应该有一些相当显着的差异。
    • @AnonJ 我从未在我的应用程序中看到任何草率的图像(我有三星 S4,我认为它也有 xxhdpi)。但是为 xxhdpi 制作图像确实更好。
    猜你喜欢
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多