关于ImageView中的Bit地图内存有关问题

关于ImageView中的Bitmap内存问题bm1 BitmapFactory.decodeResource(getResources(), R.drawable.test_1

关于ImageView中的Bitmap内存问题


bm1 = BitmapFactory.decodeResource(getResources(), R.drawable.test_1);
iv1.setImageBitmap(bm1);

bm1 = null;



如果Bitmap bm1是类成员,给ImageView设置图片后,是不是要马上设置为null?

否则假设有下一次的更改图形:


bm2 = BitmapFactory.decodeResource(getResources(), R.drawable.test_2);
iv1.setImageBitmap(bm2);


bm1 实际上不会被回收,直到类被杀死,是不是这样?


[解决办法]
是的,在不用这个bitmap的时候要将其回收,android内存溢出的原因80%是由bitmap导致的!
[解决办法]
2点
1.既然是类成员  你下次要使用  直接使用bm1就好了 没必要新建bm2

2.像这种bitmap  不是setImageBitmap就可以回收的   不然会报错的(因为此时正在显示着呢)
所以,只要不是创建bitmap特别频繁,都可以在ondestroy里面回收
[解决办法]
Bitmap回收时if(bitmap != null){bitmap.recycle(); bitmap = null;}
你这个只需要一个Bitmap就行了,一般在activity的OnDistory里面回收bitmap,而且看你这个代码不就是给ImageView设图片吗,没必要转换成bitmap啊