Android中Bitmap是非占用内存的,如果不用好非常容易出现OOM(outofmemory)错误!
1、当你在对bitmap重复使用非多的情况下,如果不对他进行recycle,应用程序非法容易挂掉!示例如下
private Bitmap mBitmap[] = new Bitmap[1000];
for(for i =0;i<1000;i++){
mBitmap=Bitmap.createBitmap(360,240,Bitmap.Config.RGB_565)
}
这时候你应该在不使用的时候recycle bitmap;如下
for(for i =0;i<1000;i++){
mBitmap[i].recycle();
mmBitmap = null;
}
2、
当你使用bitmap为imageview设置图片时候,如
Imageview mImage;
Bitmap mBitmap;
mImage.setImageBitmap(mBitmap);
这时候你应该这样来翻译Bitmap所占用的内存
Drawable d= mImage.getDrawable();
if(d!=null&& d instanceof BitmapDrawable)
{
Bitmap bmp=((BitmapDrawable)d).getBitmap();
bmp.recycle();
bmp=null;
}
mImage.setImageBitmap(null);
if(d!=null){
d.setCallback(null);//这句别忘记加了
}