android 图片缓存LruCache(二)

来源:互联网 发布:sql server select if 编辑:程序博客网 时间:2024/04/29 23:58
针对上一章的图片缓存,本章增加网络请求;如需完整的图片缓存,需要在本章的基础上,增加sd卡缓存。
public class ImageLoader {    ImageCache imageCache = new ImageCache();    ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());    public void displayImage(final String url, final ImageView imageView){        Bitmap bitmap = imageCache.get(url);        if(bitmap != null){            imageView.setImageBitmap(bitmap);            return;        }        imageView.setTag(url);                //TODO 需另外增加sd卡缓存        executorService.submit(new Runnable() {            @Override            public void run() {                Bitmap bitmap = downloadImage(url);                if (bitmap == null){                    return;                }                if(imageView.getTag().equals(url)){                    imageView.setImageBitmap(bitmap);                }                imageCache.put(url,bitmap);            }        });    }
//TODO 如需扩展,需另外建立一个类,用来管理下载,本类只做图片加载赋值
public Bitmap downloadImage(String imageUrl){ Bitmap bitmap = null; try{ URL url = new URL(imageUrl); final HttpURLConnection connection = (HttpURLConnection)url.openConnection(); bitmap = BitmapFactory.decodeStream(connection.getInputStream()); connection.disconnect(); }catch (Exception e){ e.printStackTrace(); } return bitmap; }}
0 0
原创粉丝点击