关于BitmapFactory.decodeResource会导致oom
来源:互联网 发布:少年ma的奇幻 知乎 编辑:程序博客网 时间:2024/06/07 09:38
今天工作的时候遇到了这种情况,在app重复不断的开启关闭的时候或者不停切换页面的时候会有BitmapFactory.decodeResource这个方法导致oom的状况,我分析了一下是因为bitmap没有及时释放而且加载的图片占用内存较大造成的。解决方法使用BitmapFactory.decodeStream代替,并且改变图片的质量。代码如下
/**
* 加载图片
*
* @param resources
* @param id
* @return Bitmap
*/
public static Bitmap decodeBitmapResource(Resources resources, int id) {
Bitmap bitmap;
InputStream is = resources.openRawResource(id);
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inPurgeable = true;
opts.inInputShareable = true;
opts.inPreferredConfig = Bitmap.Config.RGB_565;
bitmap = BitmapFactory.decodeStream(is, null, opts);
return bitmap;
}
/**
* 加载图片
*
* @param resources
* @param id
* @return Drawable
*/
public static Drawable decodeDrawableResource(Resources resources, int id) {
InputStream is = resources.openRawResource(id);
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inPurgeable = true;
opts.inInputShareable = true;
opts.inPreferredConfig = Bitmap.Config.RGB_565;
return new BitmapDrawable(resources, is);
}
切记inPreferredConfig 不要使用ARGB_8888。
- 关于BitmapFactory.decodeResource会导致oom
- Android-BitmapFactory.decodeResource OOM问题
- BitmapFactory.decodeResource
- BitmapFactory.decodeResource
- BitmapFactory.decodeResource
- BitmapFactory.decodeStream()与BitmapFactory.decodeResource()
- BitmapFactory.decodeResource的参数
- Android: BitmapFactory.decodeResource BitmapFactory.decodeStream区别
- BitmapFactory decodeResource and decodeStream 's problem
- BitmapFactory.decodeResource 获取图片宽与高
- BitmapFactory.decodeResource(getResources(), id)结果返回nul
- BitmapFactory类decodeResource与decodeStream方法比较
- 安卓方法——BitmapFactory.decodeResource()
- Bitmap的生成流程之BitmapFactory.decodeResource VS BitmapFactory.decodeStream
- Bitmap的生成流程之BitmapFactory.decodeResource VS BitmapFactory.decodeStream
- Bitmap的生成流程之BitmapFactory.decodeResource VS BitmapFactory.decodeStream
- (Bitmap OOM) BitmapFactory.nativeDecodeStream
- (Bitmap OOM) BitmapFactory.nativeDecodeStream
- Windows下 Django部署到Apache
- 女孩吐槽 IT 男:有钱自大无聊 约会竟爱谈工作
- struts2 2.3xxx 升级至 2.5.10.1中遇到的问题
- 不仅仅是截图--截取整个scrollView的内容
- left join、right join、inner join的区别
- 关于BitmapFactory.decodeResource会导致oom
- 基于AS号的域间路由机制-CABA
- 关于excel表格数据处理及导入oracle数据库相关操作
- 8-桶排序B
- Kotlin学习(一)
- 优化页面加载速度
- 机器学习-梯度下降
- 又见拦截导弹
- 逆序对