欢迎大家访问我的博客http://blog.csdn.net/mikejaps,专注于android ios app 开发
Android 内存有限,当我们需要加载比较多的bitmap时(如做新闻阅读类app),我们需要用到LruCache缓存,
一下是主要代码
// Get memory class of this device, exceeding this amount will throw an
// 得到设备的运行内存
final int memClass = ((ActivityManager) context.getSystemService(
Context.ACTIVITY_SERVICE)).getMemoryClass();
// 使用1/8的内存用来做缓存
final int cacheSize = 1024 * 1024 * memClass / 8;
mMemoryCache = new LruCache(cacheSize) {
@Override
protected int sizeOf(String key, Bitmap bitmap) {
// The cache size will be measured in bytes rather than number of items.
return bitmap.getByteCount();
}
};
//添加bitmap 到缓存
public void addBitmapToMemoryCache(String key, Bitmap bitmap) {
if (getBitmapFromMemCache(key) == null) {
mMemoryCache.put(key, bitmap);
}
}
//从缓存中取出bitmap
public Bitmap getBitmapFromMemCache(String key) {
return mMemoryCache.get(key);
}