java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@412d7230,androidbitmap
最近遇到了如標題這樣的錯誤,再次記錄解決方案。本文參考文章:
http://bbs.csdn.net/topics/390196217
出現此bug的原因是在記憶體回收上,裡面用Bitamp的代碼為:
top=(ImageView)view.findViewById(R.id.top);bitmap=ImgBitmap.comeFromRes(getResources(), R.drawable. top);top.setImageBitmap(bitmap);bottom=(ImageView)view.findViewById(R.id.bottom);bitmap1=ImgBitmap.comeFromRes(getResources(), R.drawable. bottom);bottom.setImageBitmap(bitmap1);
在回收時,應該這樣寫:
@Overridepublic void onDestroy() {// TODO Auto-generated method stubtop.setImageBitmap(null);bottom.setImageBitmap(null);ImgBitmap.MyRecycle(bitmap);ImgBitmap.MyRecycle(bitmap1);super.onDestroy();}
或者
@Overridepublic void onDestroy() {// TODO Auto-generated method stubImgBitmap.MyRecycle(mBitmap);ImgBitmap.MyRecycle(mBitmap1);top=null;bottom=null;super.onDestroy();}
另外MyRecycle方法的代碼如下:
public static void MyRecycle(Bitmap bmp){if(!bmp.isRecycled() && null!=bmp){bmp=null;}}}總之是必須要解除與bitmap有關的所有綁定。
轉載請註明出處:http://blog.csdn.net/android_jiangjun/article/details/39698459
android 為何會用到已釋放的bitmap
代碼不全啊,這個要具體問題具體分析啦。。。
android Drawable、Bitmap、Canvas與Paint各相當於實際畫畫時的什工具,詳細告知
bitmap:位元影像,一般尾碼為bmp,是一種像素顯示對象。
drawable:一種繪圖物件,用來裝載圖形並可做一些進階影像處理。
canvas:畫布,一種處理過程,可用來管理bitmap,提供基礎映像操作。
paint:畫筆,畫圖工具,管理顏色,樣式,字型。