我正在构建一个简单的壁纸应用程序。我将壁纸图像(.jpg)存储为res文件夹中的资源。我向用户显示一个缩略图网格,我将其作为资源(.jpg)分别存储在res中。我想滚动浏览这个网格是平滑而快速的。我的问题是,当我使用适配器加载gridview时,在getView方法中,我将资源转换为位图,然后将其加载到Grid中的每个imageView中。如果我首先将缩略图作为.bmp存储在res文件夹中会更快吗?此外,我手动创建缩略图,而不是操纵在运行时制作它们的大型壁纸。每个缩略图都缩放到120像素的宽度,网格由120x120的图像视图组成。所以我想知道如何快速有效地加载这些图像? 我将适配器设置为Asyntask内的gridview,但我没有注意到改进。
答案 0 :(得分:2)
Jpeg,这是一种有损图像压缩,通常可以提供最佳质量的尺寸权衡。 如果你试图存储高质量的图像,那么你几乎肯定会想要使用Jpeg。
PNG确实具有有用的功能,例如允许您使用透明度,而对于简单的块颜色图像,输出的文件非常小。
然而,当你开始创建照片质量的图像,如壁纸,作为PNG,你将看到怪物文件大小,这在移动设备上不会有太多乐趣或最终欣赏用户。 更大的文件往往需要更多的系统资源(CPU时间和RAM),而在移动设备上,这些资源非常宝贵。
我建议也许对于缩略图你可能会使用PNG,而对于全尺寸图像使用JPEG,但你可能会看到哪个创建最小的文件,因为这可能很好地表明渲染效率即,渲染800b PNG只需要很少的资源。
答案 1 :(得分:1)