android加载大量图片内存溢出的三种解决办法

本文介绍了三种解决Android加载大量图片时出现内存溢出问题的方法:1) 加载缩略图以减少内存占用,但可能造成图片失真;2) 使用软引用进行图片缓存,避免频繁加载;3) 及时释放不再使用的Bitmap对象,通过调用recycle()方法和设置为null配合System.gc()来回收内存。
摘要由CSDN通过智能技术生成

方法一:

在从网络或本地加载图片的时候,只加载缩略图。

 


/**

  1. * 按照路径加载图片
  2. * @param path 图片资源的存放路径
  3. * @param scalSize 缩小的倍数
  4. * @return
  5. */
  6. public static Bitmap loadResBitmap(String path, int scalSize) {
  7. BitmapFactory.Options options = new BitmapFactory.Options();
  8. options.inJustDecodeBounds = false;
  9. options.inSampleSize = scalSize;
  10. Bitmap bmp = BitmapFactory.decodeFile(path, options);
  11. return bmp;
  12. }

 

 

这个方法的确能够少占用不少内存,可是它的致命的缺点就是,因为加载的是缩略图,所以图片失真比较严重,对于对图片质量要求很高的应用,可以采用下面的方法。

方法二:

运用JAVA的软引用,进行图片缓存,将经常需要加载的图片,存放在缓存里,避免反复加载。

 

/**

  1. *
  2. * @author larson.liu
  3. * 该类用于图片缓存,防止内存溢出
  4. */
  5. public class BitmapCache {
  6. static * BitmapCache cache;
  7. /*
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值