此代码有错误吗?当我运行这个时,我在这里得到一个错误,因为无法绘制回收的位图。 当我通过堆栈溢出本身阅读时,我得到了这个代码。
`Bitmap bm = BitmapFactory.decodeFile(urlString,options);
imgDisplay.setImageBitmap(bm);
if(bm!=null){
bm.recycle();
}`
答案 0 :(得分:1)
你应该只在你的Activity的onDestroy()中调用call recycle(),并且只有你知道为什么需要这样做。通常情况下没有必要,除非您面对例如记忆问题。您可以在调用View的onDraw()之前调用当前的recycle(),或者可能有其他代码触发View上的绘图调用,这会导致错误。所以我建议你删除recycle()调用作为起点。
答案 1 :(得分:0)
删除
if(bm!=null){
bm.recycle();
}`
仅在不再使用或完全引用时才回收位图。