Android加载图片防止OOM
16lz
2021-01-26
最近研究了郭霖老师的这篇Android高效加载大图的文章,从中学到了很多,也思考了很多。特写此文章将自己的所想结合前辈的文章一起来个总结;
郭老师一共用了两篇文章来介绍android高效加载大图,我在学习了两篇文章之后,将两篇文章结合在了一起,写了一个能自定义压缩图片的高效加载大图多图的Demo,
在参照前辈文章编写的时候,遇到一个关键的技术总结点:
```
publicstaticBitmapdecodeSampledBitmapFromResource(InputStreamis,intreqWidth,intreqHeight)
{
// 第一次解析将inJustDecodeBounds设置为true,来获取图片大小
finalBitmapFactory.Optionsoptions=newBitmapFactory.Options();
//inJustDecodeBounds设置为true,将不返回实际的bitmap不给其分配内存空间而里面只包括一些解码边界信息即图片大小信息
options.inJustDecodeBounds=true;
BitmapFactory.decodeStream(is,null,options);
// 调用上面定义的方法计算inSampleSize值
options.inSampleSize=calculateInSampleSize(options,reqWidth,reqHeight);
// 使用获取到的inSampleSize值再次解析图片
options.inJustDecodeBounds=false;
returnBitmapFactory.decodeStream(is,null,options);
}
更多相关文章
- Router—一个高效,使用方便,基于动态代理实现的Android事件总线库
- 一款现代、高效的 Android(安卓)图片压缩框架
- Android(安卓)studio Error:(30, 31) 错误: 程序包 不存在
- Android开发者的福音-良心之选
- Android(安卓)App应用包增量升级(one)
- 如何使用Android(安卓)MediaStore裁剪大图片
- Android使用SubsamplingScaleImageView完美查看超大图片
- android 加载大图片
- Android(安卓)Studio常用功能配置,让开发更高效(一)