【发布时间】:2011-10-23 22:59:06
【问题描述】:
我有这样的事情:
Bitmap.Config conf = Bitmap.Config.ARGB_8888;
WeakReference<Bitmap> bm = new WeakReference<Bitmap>(Bitmap.createBitmap(3000 + 3000, 2000, conf));
Canvas canvas = new Canvas(bm.get());
canvas.drawBitmap(firstBitmap, 0, 0, null);
canvas.drawBitmap(bm, firstBitmap.getWidth(), 0, null);
imageView.setImageBitmap(bm);
我将它应用到 10 多个图像视图上,这些图像视图是一一创建的。 每当我创建新的 ImageView 时,我想从第一个对象中回收 'bm' 对象,导致这段代码在那里,导致我的堆越来越大,然后抛出 OutOfMemoryError,所以我这样做:
bm.recycle()
在我将位图 (bm) 设置为 imageView 对象之后。 这会导致 ImageView 的画布要绘制回收的 Bitmap 的异常。
如何回收已经作为图像放在ImageView上的Bitmap?
谢谢b
【问题讨论】:
-
就在imageView.setImageBitmap(bm);之后并在此块结束..没有其他行。
标签: java android memory-leaks bitmap