回收图像视图的位图
2022-09-01 04:32:14
我有这样的东西:
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 上的位图的方法是什么?
谢谢