您的位置:首页 > 其它

lruCache

2016-01-02 23:36 134 查看
/**
* 内存缓存
* @author Administrator
*
*/
public class MemoryCacheUtils {

//private HashMap<String,Bitmap> mMemoryCache = new HashMap<String,Bitmap>();
private LruCache<String, Bitmap> mMemoryCache;

public MemoryCacheUtils(){
long maxMemory = Runtime.getRuntime().maxMemory(); //每个应用被分配的内存, 模拟器默认是16m
mMemoryCache = new LruCache<String, Bitmap>((int) (maxMemory/8)){//一般设置为内存的八分之一
@Override
protected int sizeOf(String key, Bitmap value) {
//int byteCount = value.getByteCount(); 版本不兼容这个方法, 可以直接使用像素点宽高乘积获得内存大小
int byteCount = value.getRowBytes()*value.getHeight();
return byteCount;
}
};
}

/**
* 从内存读
*/
public Bitmap getBitmapFromMemory(String url){
//System.out.println("内存读到数据"+mMemoryCache.get(url));
return mMemoryCache.get(url);
}
/**
* 写内存
*/
public void setBitmapToMemory(String url, Bitmap bitmap){
mMemoryCache.put(url, bitmap);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: