Android-Universal-Image-Loader(UIL)源码解析(一)

来源:互联网 发布:windows下编译pycaffe 编辑:程序博客网 时间:2024/05/22 00:27

     Android-Universal-Image-Loader(UIL) 是android端开源的异步图片下载、缓存库UIL旨在提供一个强大的、灵活的和高度可定制的图像加载、缓存和显示工具。它提供了许多配置选项和良好控制图像加载和缓存的过程。

    github地址:https://github.com/nostra13/Android-Universal-Image-Loader 

  注意:作者已不再维护该库(2011年11月-27日--2015年 11月12日

  作为一个优秀的图片加载库,它具有如下的特点:

  •    多线程图片加载(支持同步加载和异步加载)
  •    支持自定义ImageLoader配置(包括线程池、下载器、解码器、内存和磁盘缓存、图片显示等)
  •    支持多种图片显示配置
  •    支持内存缓存和SD卡缓存
  •    监听下载过程
该库支持Android2.0以上所有系统

设计思路

支持的图片来源:

用法示例:
ImageLoader imageLoader = ImageLoader.getInstance(); // Get singleton instance// Load image, decode it to Bitmap and display Bitmap in ImageView (or any other view //  which implements ImageAware interface)imageLoader.displayImage(imageUri, imageView);
// Load image, decode it to Bitmap and return Bitmap to callbackimageLoader.loadImage(imageUri, new SimpleImageLoadingListener() {    @Override    public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {        // Do whatever you want with Bitmap    }});
// Load image, decode it to Bitmap and return Bitmap synchronouslyBitmap bmp = imageLoader.loadImageSync(imageUri);
// Load image, decode it to Bitmap and display Bitmap in ImageView (or any other view //  which implements ImageAware interface)imageLoader.displayImage(imageUri, imageView, options, new ImageLoadingListener() {    @Override    public void onLoadingStarted(String imageUri, View view) {        ...    }    @Override    public void onLoadingFailed(String imageUri, View view, FailReason failReason) {        ...    }    @Override    public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {        ...    }    @Override    public void onLoadingCancelled(String imageUri, View view) {        ...    }}, new ImageLoadingProgressListener() {    @Override    public void onProgressUpdate(String imageUri, View view, int current, int total) {        ...    }});
// Load image, decode it to Bitmap and return Bitmap to callbackImageSize targetSize = new ImageSize(80, 50); // result Bitmap will be fit to this sizeimageLoader.loadImage(imageUri, targetSize, options, new SimpleImageLoadingListener() {    @Override    public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {        // Do whatever you want with Bitmap    }});
// Load image, decode it to Bitmap and return Bitmap synchronouslyImageSize targetSize = new ImageSize(80, 50); // result Bitmap will be fit to this sizeBitmap bmp = imageLoader.loadImageSync(imageUri, targetSize, options);


   

0 0
原创粉丝点击