一、Bitmap经常会遇到的问题。

二、使用注意事项
mImageVew = (ImageView) findViewById(R.id.imageView);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.pic);
//Bitmap.createScaledBitmap 以后原有的bitmap 可以recycle 了,不然会引起outofmemoryerror
Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, 100, 100, true);
//BitmapDrawable 创建以后如果要是用的话,构造方法里面的bitmap 千万不要recycle 如果recycle 了就会报错
BitmapDrawable bitmapDrawable = new BitmapDrawable(getResources(), scaledBitmap);
bitmap.recycle();
//scaledBitmap.recycle();
mImageVew.setImageBitmap(bitmapDrawable.getBitmap());
//scaledBitmap.recycle();
探索,证实bitmap如果被用到视图上显示,那么这个bitmap一定不能进行回收,否则即使当时没报错,关闭屏幕回来 或者调用buildCache方法还是会报错,如果觉得bitmap过大,应该之前就进行压缩处理。
本文探讨Bitmap在Android开发中常见的内存问题,分享如何通过Bitmap.createScaledBitmap进行图片压缩以避免outofmemoryerror,以及使用BitmapDrawable时的注意事项,确保图片正常显示而不引发错误。
4654

被折叠的 条评论
为什么被折叠?



