【问题标题】:Android: only use xxhdpi imagesAndroid:仅使用 xxhdpi 图像
【发布时间】:2014-02-24 09:05:57
【问题描述】:

只使用 xxhdpi 图像并让 android 缩放图像有什么缺点吗? (是的,它可能更占用 CPU,但值得注意吗?)我在三星 s2 上测试过,差异很小。

是否有限制仅在将 minSdk 设置为 XX 时才使用它,因为没有 xxhdpi?

【问题讨论】:

    标签: android android-image android-drawable


    【解决方案1】:

    以下是我能想到的几个缺点:

    • 调整图像大小会占用更多 CPU 资源,应用会消耗更多电量,并且可能会感觉更迟钝,尤其是在旧设备上。
    • 您要加载的图像会更大并且会占用更多内存。在 mdpi/hdpi 设备上,运行您的应用的虚拟机将只有较少量的可用堆内存,如果您只加载高质量的图像,您可能会更频繁地遇到内存不足异常。
    • 由于调整大小,图像质量在 mdpi/hdpi 设备上可能不那么好。这实际上取决于您正在加载的图像,但是带有清晰线条的图像可能会显得有些模糊。但我还想指出,这仅适用于您确实要从矢量图形中为每个尺寸制作 png。如果您只是将 xxhdpi png 调整为更小的尺寸,那么您可能正在做与 android 正在做的完全相同的事情,所以根本不会有任何区别。

    【讨论】:

    • "如果您只是将 xxhdpi png 调整为较小的大小,您可能正在做与 android 正在做的完全相同的事情,所以根本不会有任何区别"我不' t认为这部分是真的。操作系统使用的动态调整大小算法针对性能进行了优化,而您可以在图像编辑软件中使用高质量算法。
    • 从好的方面来说,你的 apk 会小很多,对吧?
    • 对我来说,第二点就是我需要知道的全部内容。因此,只有 xxhdpi 图像是一种不好的做法。
    【解决方案2】:

    是的,可绘制 xxhdpi 是在 API 19 中引入的。 如果您想在较低的 API 级别运行您的应用程序,您将无法获得任何图像,因为系统无法访问 xxhdpi 可绘制对象。

    如果您仅在 Android 2.3 中使用 xhdpi,这也是如此。

    【讨论】:

    • 不完全正确。你必须设置targetSdkVersion=19,然后它就可以正常工作了。
    • 我在两周前对其进行了测试,我有一个 xhdpi 图像没有加载到 Android 2.2 的 ImageView 中,而在另一部 Android 2.3.3 的手机上它只是崩溃了。
    • 不确定 2.2 和 2.3,但我目前正在使用 target=19 的应用程序并在 4.1 手机上进行测试,仅使用 xxhdpi 没有问题
    • 我用 android 4, 4.1, 4.2 测试过,效果很好。
    【解决方案3】:

    我不太确定是否会存在图像质量差异:即使您确实提供了不同版本的图形,它们也可能只是原始图像的缩小版。我敢打赌,在运行时和设计时执行此操作之间的区别不会大到足以让用户在手机屏幕上注意到。

    我也不确定性能差异 - 但是,即使您承认可能会产生非零的负面影响。鉴于这一事实,我认为值得问“为什么不提供预缩放图形?”有一些工具(如Android Asset Studio Icon Generator)可以将实现这一目标所需的工作量几乎降到0。

    在移动设备中,任何以接近 0 的工作换取潜在性能提升的交易都是您应该接受的交易。

    【讨论】:

    • 现在网址已被删除。
    【解决方案4】:

    除了 Stephane 的回答,我必须说图像质量会很差,尤其是在 mdpi 设备上。

    【讨论】:

    • 为什么?我测试了它,我没有注意到差异。
    • 如果您将缩小的光栅图像与图形编辑器和 android 进行比较,您几乎看不出有什么区别。但是,如果您将使用 android 缩小的图像与已导出为多种图像尺寸的矢量图像进行比较,您会看到它。
    猜你喜欢
    • 1970-01-01
    • 2013-11-08
    • 1970-01-01
    • 2016-02-19
    • 2013-06-26
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多