/**
* 图片加载工具
* Created by lezg on 2014/7/24.
*/
public class ImagesLoader {
private static ImagesLoader mIamesLoader;
private LruCache<Integer, Bitmap> mMemoryCache;
private ImagesLoader() {
int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
// 设置图片缓存大小为程序最大可用内存的1/4
int cacheSize = maxMemory / 4;
mMemoryCache = new LruCache<Integer, Bitmap>(cacheSize) {
@Override
protected int sizeOf(Integer key, Bitmap bitmap) {
return bitmap.getByteCount() / 1024;
}
};
}
/**
* 获取 ImagesLoader实例
*
* @return ImagesLoader实例
*/
public static ImagesLoader getInstance() {
if (mIamesLoader == null) {
mIamesLoader = new ImagesLoader();
}
return mIamesLoader;
}
/**
* 将一张图片存储到LruCache中
*
* @param key LruCache的键,这里传人图片资源的ID
* @param bitmap LruCache的键bitmap
*/
public void addBitmapToMemoryCache(int key, Bitmap bitmap) {
if (getBitmapFromMemCache(key) == null) {
mMemoryCache.put(key, bitmap);
}
}
/**
* 从LruCache中获取一张图片,如果不存在就返回null。
*
* @param key LruCache的键,这里传人图片资源的ID
* @return 对应传入键的Bitmap对象,或者null。
*/
public Bitmap getBitmapFromMemCache(int key) {
return mMemoryCache.get(key);
}
}
Android 图片内存缓存
最新推荐文章于 2021-06-23 10:16:08 发布