2012-07-18 89 views
-1

首先,我是Android的新手。这个问题可能很愚蠢。请跟我来。Android:降级图像位图质量,使活动加载更快

我的活动加载用户拍摄的大量照片(外部),并在缩略图(小尺寸图片)中显示在listView或Horizo​​ntalScrollView中。我不知道是否有任何好方法来加快位图加载?我使用了bitmapFactory.insampleSize来缩小它。 inDensity会有帮助吗?任何其他好方法?

我在考虑为每个图像保存低质量的副本,因此每次应用程序都会显示缩略图低质量的图像,除非用户真的想看到原始图像。这适用吗?如果是这样,有什么办法?

在此先感谢!

+0

无论如何,在你加载一个之后你就会缩放一个,而且这是大部分时间消耗的加载。如果您在加载时显示圆形进度条,那么用户可能会很高兴 – 2012-07-18 18:52:13

回答

1

我会建议你创建你的位图的缩小版本。请按照http://developer.android.com/training/displaying-bitmaps/load-bitmap.html#load-bitmap了解如何缩小版本的位图。因为它是缩放版本的位图以显示缩略图,所以它当然会节省您的内存使用量。

+0

感谢您的回复。我使用insampleSize缩小了位图,但仍需要相当长的时间。 – 2012-07-18 21:05:35

+0

如果您仔细检查链接,它首先根据所需的高度和宽度计算inSampleSize。所以,首先调用decodeResource来检查维度(check,options.inJustDecodeBounds首次设置为true)。下一次调用decodeResource时,options.inJustDecodeBoundsis设置为false。 它工作得很好,因为我自己已经使用它来抛出OOM例外的沉重图像。如果可能,分享您的代码。 – Veer 2012-07-19 13:11:05