【问题标题】:In what format should I keep the resource images for my app?我应该以什么格式保存我的应用程序的资源图像?
【发布时间】:2012-09-23 11:01:24
【问题描述】:

我正在构建一个简单的壁纸应用程序。我将壁纸图像(.jpg)作为资源存储在 res 文件夹中。我向用户展示了一个缩略图网格,我也将其作为资源(.jpg)单独存储在 res 中。我希望通过此网格的滚动流畅且快速。我的问题是,当我使用适配器加载 gridview 时,在 getView 方法中,我将资源转换为位图,然后将其加载到 Grid 中的每个 imageView 中。如果我首先将缩略图作为 .bmp 存储在 res 文件夹中会更快吗?此外,我手动创建了缩略图,而不是在运行时操纵大型壁纸制作它们。每个缩略图都缩放到 120 像素的宽度,网格由 120x120 的图像视图组成。所以我想知道如何快速有效地加载这些图像? 我将适配器设置为 Asyntask 中的 gridview,但我没有注意到改进。

【问题讨论】:

  • 您考虑过使用@Fedor 的延迟加载 方法吗?你可以在这里获得更多信息:Lazy Load.

标签: android gridview bitmap adapter


【解决方案1】:

Jpeg 是一种有损图像压缩,通常提供最佳质量与大小的权衡。 如果您尝试存储高质量的图像,那么您几乎肯定会想要使用 Jpeg。

PNG 确实具有有用的功能,例如允许您使用透明度,并且对于简单的块彩色图像输出非常小的文件大小。

但是,当您开始创建照片质量的图像(例如壁纸、PNG)时,您会看到巨大的文件大小,最终在移动设备上不会很有趣或不会受到太多赞赏用户。 此外,较大的文件往往需要更多的系统资源(CPU 时间和 RAM),而在移动设备上,这些资源非常宝贵。

我建议您可能对缩略图使用 PNG,而对于全尺寸图像使用 JPEG,但您最好看看哪个创建的文件最小,因为这可能很好地表明了渲染效率即渲染一个 800b PNG 需要很少的资源。

【讨论】:

    【解决方案2】:

    将图像更改为 bmp 文件格式可能会稍微提高性能(因为 JPG 是压缩的位图图像,在渲染时需要解压缩),但通常不值得大幅增加文件大小。

    我建议使用 PNG 位图格式,因为它在渲染和文件大小方面都很轻便。

    至于ListView中的渲染,你可能想看看this问题和this代码项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-01
      • 2014-11-26
      • 1970-01-01
      • 2011-01-12
      • 1970-01-01
      • 2011-04-03
      • 1970-01-01
      相关资源
      最近更新 更多