Android 图片内存缓存

来源:互联网 发布:软件项目进度表 excel 编辑:程序博客网 时间:2024/06/06 17:52
/** * 图片加载工具 * 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);    }}

0 0
原创粉丝点击