何时在运行时生成图标?

时间:2013-10-08 08:44:46

标签: android screen-resolution

我有一个Android应用,每个屏幕分辨率包含大约150个图标。

如果我将所有图标放在所有5个主要分辨率(ldpi,mdpi,hdpi,xhdpi,xxhdpi)中,那么它将使图标总数达到750。 这有几个缺点:

  • 大APK尺寸
  • 将dexguard与ant build脚本一起使用时构建过程缓慢。它 对图像进行一些处理需要一些时间。

或者我只能在某些分辨率中放置图标。例如,ldpi设备只有10% of the market now,在Android官方文档的某处,他们说Android可以有效地从hdpi图标缩小50%到ldpi。

现在,如果我选择采用这种方式而不提供ldpi图标,那么在Android设备上运行时将图标从hdpi调整为ldpi会有什么影响?如果它需要调整150个图标的大小,则可能需要一些时间,特别是因为ldpi设备可能具有较慢的CPU。 调整大小的阶段发生在Android设备上:安装时间?首次应用启动时间?每次发布?

感谢您的建议!

3 个答案:

答案 0 :(得分:0)

当您反编译Google自己的APK时,他们根本没有使用ldpi。并且他们仅将xxhdpi用于应用程序的启动器图标。 xxhdpi图标特别使APK尺寸更大。

图标的大小调整可能在每次发布时都在运行时完成。

答案 1 :(得分:0)

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

  1. 从xxhdpi获取图片。
  2. 将其缩放到所需的分辨率。
  3. 在您的布局中使用它。
  4. 将其写入磁盘。
  5. 尝试this在运行时生成拇指。

答案 2 :(得分:0)

Android会很好地缩小你的drawable,最多可以减少2个密度桶。如果你尝试做超过2个桶(即超过2倍),它看起来像垃圾。所以你应该提供每第三个桶 - 目前只有xxxhdpi和hdpi。

*除非你的绘图中有像素艺术(但不这样做),否则双线性插值是不可接受的。然后你应该选择一个最小支持的存储桶并提供上面的所有内容。