图标何时在运行时生成?

3

我有一个包含大约150个图标的Android应用程序,适用于每种屏幕分辨率。

如果我将所有图标都放在所有5个主要分辨率(ldpi、mdpi、hdpi、xhdpi、xxhdpi)中,则总共需要750个图标,这有几个缺点:

  • APK文件体积过大
  • 使用dexguard和ant脚本构建时构建速度缓慢。它会对图像进行一些处理,需要一些时间。

作为替代方案,我可以仅在某些分辨率下放置图标。例如,现在只有10%的市场份额是ldpi设备,而且在Android官方文档中他们说,Android可以高效地将hdpi图标缩小50%以适应ldpi。

现在,如果我选择这种方式而不提供ldpi图标,将在Android设备上运行时将hdpi图标调整大小会有什么影响?如果需要调整大小150个图标,可能需要一些时间,特别是因为ldpi设备的CPU速度较慢。

在Android设备上何时进行调整大小:安装时?在首次启动应用程序时?每次启动时?

感谢您的建议!


这个图标是用于ListView图片还是用于布局图片? - Basbous
我自己也问了相同的问题一段时间。谢谢你的提问。我会看看别人的建议。每次我的结论都是关于ldpi文件夹的非常低的内存占用量。最终,我每次都放了它。关于缓慢的构建过程。考虑在开发过程中稍后再放置它们。 - HoodVinci
@Basbous 这些图标用于布局图片中。 - gpo
3个回答

0

Android会将您的可绘制对象缩小至最多2个密度桶的差异。如果您尝试使用超过2个桶(即超过2倍因子),则看起来很糟糕。因此,您应该提供每第三个桶 - 目前仅有xxxhdpi和hdpi。

*除非您的可绘制对象中有像素艺术(但不要这样做),双线性插值不可接受。然后,您应该选择一个最小支持的桶并提供所有高于该桶的内容。


0

当您反编译谷歌自己的 APK 时,它们在一段时间内根本不使用 ldpi。而且他们仅在应用程序的启动器图标中使用 xxhdpi。xxhdpi 图标尤其会使 APK 大小变大。

图标的调整可能在每次启动时运行时完成。


谢谢你提供有关Google APK的信息。我想我最终也会这样做。 - gpo
我刚刚反编译了最新的Google Maps APK,发现根本没有xxhdpi文件夹。而在ldpi文件夹中只有一个png图像,可能根本没有被使用。 - tasomaniac
1
即使Roman Nurik在这里说不用担心ldpi http://www.youtube.com/watch?v=zhszwkcay2A - tasomaniac

0

如果图像用于布局,则可以使用xxhdpi图像,然后可以在运行时生成xhdpi、hdpi、mdpi和ldpi。

  1. 从xxhdpi获取图像。
  2. 将其缩放到所需的分辨率。
  3. 在您的布局中使用它。
  4. 将其写入磁盘。

尝试this在运行时生成缩略图。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接