一. Universal-Image-Loader 简介
1. 基本功能
基本功能 :
-- 1. 多线程图片加载 (同步|异步)
-- 2. 广泛的 ImageLoader 定制, 线程执行者, 下载, 编码, 内存 和 硬盘 缓存, 图片显示 等配置;
-- 3. 图片展示的可选定制, 图片存储, 缓存切换, 编解码操作, Bitmap 处理和展示;
-- 4. 图片的内存缓存 和 硬盘缓存, 硬盘包括设备的文件系统 或 SD 卡;
-- 5. 监听加载过程, 包括下载过程;
2. 可使用的 URI 地址种类
识别的 URI 地址 :
-- 网络资源 : "http://site.com/image.png" // from Web
-- 本地 SD 卡资源 : "file:///mnt/sdcard/image.png" // from SD card
-- 本地 SD 卡资源 (媒体资源) : "file:///mnt/sdcard/video.mp4" // from SD card (video thumbnail)
-- ContentProvider 图片资源 : "content://media/external/images/media/13" // from content provider
-- ContentProvider 媒体资源 :"content://media/external/video/media/13" // from content provider (video thumbnail)
-- 工程中的 assets 目录 : "assets://image.png" // from assets
-- 工程中的 res 目录 : "drawable://" + R.drawable.img // from drawables (non-9patch images)
3. ImageLoader 简单使用
ImageLoader 简单使用 :
-- 1. 获取 ImageLoader : 获取 ImageLoader 单例实例对象;
ImageLoader imageLoader = ImageLoader.getInstance();
-- 2. 加载图片到 ImageView : 加载图片, 将图片解析成 Bitmap 对象, 并将 Bitmap 设置到 ImageView 中显示, 或者 其它实现了 ImageAware 接口的 View 对象;
imageLoader.displayImage(imageUri, imageView);
-- 3. 异步加载图片 : 加载图片, 将图片解析成 Bitmap 对象, 并在解析完成时返回, 解析返回不是实时同步的;
imageLoader.loadImage(imageUri, new SimpleImageLoadingListener() { @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { // 执行你想要对 Bitmap 对象进行的操作 } });
-- 4. 同步加载图片 : 加载图片文件, 将图片文件解析成 Bitmap 对象, 并实时同步返回 Bitmap 对象;
Bitmap bmp = imageLoader.loadImageSync(imageUri);
4. ImageLoader 完整使用
ImageLoader 完整使用 :
-- 1. 加载图片到 ImageView : 加载图片, 将图片解析成 Bitmap 对象, 并将 Bitmap 设置到 ImageView 中显示, 或者 其它实现了 ImageAware 接口的 View 对象;
// 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) { ... } });
-- 2. 异步加载图片 : 加载图片, 将图片解析成 Bitmap 对象, 并在解析完成时返回, 解析返回不是实时同步的;
// Load image, decode it to Bitmap and return Bitmap to callback ImageSize targetSize = new ImageSize(80, 50); // result Bitmap will be fit to this size imageLoader.loadImage(imageUri, targetSize, options, new SimpleImageLoadingListener() { @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { // Do whatever you want with Bitmap } });
-- 3. 同步加载图片 : 加载图片文件, 将图片文件解析成 Bitmap 对象, 并实时同步返回 Bitmap 对象;
// Load image, decode it to Bitmap and return Bitmap synchronously ImageSize targetSize = new ImageSize(80, 50); // result Bitmap will be fit to this size Bitmap bmp = imageLoader.loadImageSync(imageUri, targetSize, options);