【问题标题】:When are icons generated at runtime?什么时候在运行时生成图标?
【发布时间】:2014-07-02 16:56:04
【问题描述】:

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

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

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

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

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

感谢您的建议!

【问题讨论】:

  • 是用于列表视图图像的图标还是用于布局图像的图标?
  • 我有一段时间问自己同样的问题。谢谢你的提问。我会看看其他人的建议。每次我的结论都是关于 ldpi 文件夹的内存占用非常低。我终于每次都放了。关于缓慢的构建过程。想想最近把它们放在开发过程中。
  • @Basbous 图标用于布局图像

标签: android screen-resolution


【解决方案1】:

当您反编译 Google 自己的 APK 时,他们有一段时间根本不使用 ldpi。他们仅将 xxhdpi 用于应用程序的启动器图标。 xxhdpi 图标尤其使 APK 大小变大。

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

【讨论】:

  • 感谢您提供有关 Google APK 的信息。我想我最终也会这样做。
  • 我刚刚反编译了最新的谷歌地图APK,根本没有xxhdpi。而且ldpi文件夹里只有一张png图片,可能根本不用。
  • 连 Roman Nurik 都说这里不用担心 ldpi youtube.com/watch?v=zhszwkcay2A
【解决方案2】:

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

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

尝试this 在运行时生成拇指。

【讨论】:

    【解决方案3】:

    Android 会很好地*将您的可绘制对象缩小多达 2 个密度桶的差异。如果您尝试执行超过 2 个存储桶(即超过 2 倍),这看起来很糟糕。所以你应该提供每三个桶 - 目前只有 xxxhdpi 和 hdpi。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-17
      • 2017-08-18
      • 1970-01-01
      相关资源
      最近更新 更多