使用软引用缓存Bitmap

原创 2012年03月22日 10:22:14

简单介绍下软引用:

Java中的SoftReference即对象的软引用。如果一个对象具有软引用,内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。使用软引用能防止内存泄露,增强程序的健壮性。  


用Map集合缓存软引用的Bitmap对象:

//缓存,用于存储背景图片资源
public Map<String, SoftReference<Bitmap>> mImageCacheMap = new HashMap<String,
                                                               SoftReference<Bitmap>>();
Bitmap bitmap = BitmapFactory.decodeStream(inputStream, null,options);
SoftReference<Bitmap> d = new SoftReference<Bitmap>(bitmap);
mImageCacheMap.put(imagePath, d);

从缓存中取软引用的Bitmap对象:

SoftReference<Bitmap> softReference = mImageCacheMap.get(imageUrl);
if (softReference.get() != null) {
    return softReference.get();
}

注意:取出Bitmap对象时,如果由于内存不足Bitmap被回收,将取得空。


bitmap 软引用,弱引用

软引用使用方法 private Map> imageCache = new HashMap>();
  • yujunlong3919
  • yujunlong3919
  • 2014年07月14日 10:46
  • 974

[Android] Android开发优化之——使用软引用和弱引用

Java从JDK1.2版本开始,就把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。这里重点介绍一下软引用和弱引用。如果一个...
  • arui319
  • arui319
  • 2013年01月10日 12:49
  • 54172

Android 在使用Bitmap的时候为啥要手动调用recycle方法呢?

http://blog.chinaunix.net/uid-20771867-id-3351053.html 我们知道手机的内存有限,而图片所占的内存往往又很大。所以在处理图片的时候...
  • vurtne_ye
  • vurtne_ye
  • 2014年07月13日 17:17
  • 833

Android HashMap增强版SoftMap,使用软引用

说明: 1)创建个HashMap/** * 软引用的map集合 * * @author chenlin * * @param * @param */ public class ...
  • lovoo
  • lovoo
  • 2016年05月03日 10:30
  • 732

bitmap应用

所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。 位图主要用于快速检索关键字状态,通常...
  • dndxhej
  • dndxhej
  • 2012年02月07日 19:04
  • 1916

【Bitmap算法浅谈篇】Mysql应用Bitmap

首先Bitmap算法并不是一种数学公式,而是一种方法! 下面通过一个列子来使你明白何为Bitmap算法!以下数据库以mysql为列! 给出一个表结构,每一行都表示一条记录! ...
  • qq_22520215
  • qq_22520215
  • 2017年09月08日 18:05
  • 555

海量数据解决思路之BitMap

原文:http://zengzhaozheng.blog.51cto.com/8219051/1404108 一、概述   本文将讲述Bit-Map算法的相关原理,Bit-Map算法的一些利用...
  • u013063153
  • u013063153
  • 2017年04月26日 14:43
  • 461

bitmap应用及实现(哈希表)

当实现时间复杂度优化的时候,经常会用到hash表来存储一些数据,然后
  • a45872055555
  • a45872055555
  • 2014年07月03日 17:12
  • 747

Android 那些你所不知道的Bitmap对象详解

我们知道Android系统分配给每个应用程序的内存是有限的,Bitmap作为消耗内存大户,我们对Bitmap的管理稍有不当就可能引发OutOfMemoryError,而Bitmap对象在不同的Andr...
  • xiaanming
  • xiaanming
  • 2014年11月14日 09:23
  • 47323

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

方法一: 在从网络或本地加载图片的时候,只加载缩略图。 /** * 按照路径加载图片 * @param path 图片资源的存放路径 * @param scalSize 缩小的倍数 *...
  • u014611173
  • u014611173
  • 2016年04月19日 15:47
  • 239
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用软引用缓存Bitmap
举报原因:
原因补充:

(最多只允许输入30个字)