解决Android应用中Bitmap加载导致OOM内存溢出的问题
发布时间
阅读量:
阅读量
最近在开发一个上传头像的功能模块。在将头像传输至服务器的过程中,还需要将其保存在本地存储中。然而,程序运行一段时间后频繁出现OOM异常并导致崩溃,经过排查发现,问题根源在于直接通过Bitmap加载图片时,实际占用的内存远超图片原始大小,从而引发内存溢出的情况。
这一问题持续困扰了我两天时间,最终通过采用图片压缩的方式得以解决。考虑到用户头像在界面上显示的尺寸并不大,因此没有必要使用高清图片。为了记录此次问题的解决过程,决定撰写本文进行总结。
我所使用的工具类为自行编写的ImageUtils,其完整代码如下:
public class ImageUtils {
public static Bitmap getBitmapFromPath(String imgPath, int reqWidth, int reqHeight) {
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(imgPath, options);
// Calculate inSampleSize
全部评论 (0)
还没有任何评论哟~
