我尝试做的是在回收后重复使用Bitmap。为此,我知道我必须再次初始化de Bitmap,我在调用recycle()之后这样做:
mapBitmap = Bitmap.createBitmap(map, 0, 0, map.getWidth(), map.getHeight());
但是当我尝试使用它时,我得到了
06-12 20:41:01.628 615-1470/com.example.project W/System.err: java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@5f1fba3
顺便说一下,我有另一个Bitmap,我必须回收并稍后使用,但是这个有效,它们之间的唯一区别是我使用decodeFile()初始化这个,如下所示: / p>
bm = BitmapFactory.decodeFile(url);
答案 0 :(得分:0)
您的问题是您使用回收的Bitmap
初始化另一个。
在这一行:
mapBitmap = Bitmap.createBitmap(map, 0, 0, map.getWidth(), map.getHeight());
您使用的是map
对象,这是一个recyled Bitmap,并且您无法使用回收的Bitmap创建新的Bitmap,请务必在调用Bitmap.createBitmap(map, ...)
之前正确初始化它在使用完之前,请在代码中的某处调用map.recycle()
。