这个异常的原因大多是因为调用了
bitmap.recycle();
这个方法,后面继续使用bitmap的时候就报错,就算是重新赋值也没用
网上很多分析了 是说如果后面使用的图片资源是一样的,会优先使用缓存里的bitmap对象。
调用了recycle方法后bitmap不可用,而你又去调用了,就报错了。
网上有说重写view的onDraw方法捕获异常,但是这样方法只是掩耳盗铃,没什么用。
后面看了很多分析文章之后,发现将bitmap的引用对象也置空就可以解决这个问题,也就是说这个方法只适合在
onDestroy里面去使用
例如你的bitmap是设置给imageview的
那么你在onDestroy里这样处理,因为功能中还用到了BitmapDrawable 顺便也清空下
if(bitmap!=null&&!bitmap.isRecycled()){ bitmapDrawable.setCallback(null); bitmap.recycle(); bitmap=null; iamgeview.setImageDrawable(null); }
这样就可以解决这个问题