您的位置:首页 > 移动开发 > Android开发

Android Universal Image Loader 源码分析(一)

2015-08-11 09:44 495 查看
本文为 Android 开源项目源码解析 中 Android Universal Image Loader
部分

项目地址:Android-Universal-Image-Loader,分析的版本:eb794c3,Demo
地址:UIL Demo

分析者:huxian99,校对者:GrumoonTrinea,校对状态:完成


1. 功能介绍


1.1 Android Universal Image Loader

Android Universal Image Loader 是一个强大的、可高度定制的图片缓存,本文简称为
UIL


简单的说 UIL 就做了一件事——获取图片并显示在相应的控件上。


1.2 基本使用


1.2.1 初始化


添加完依赖后在
Application
Activity
中初始化
ImageLoader
,如下:
public class YourApplication extends Application {

@Override
public void onCreate() {
super.onCreate();
ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this)
// 添加你的配置需求
.build();
ImageLoader.getInstance().init(configuration);
}
}


其中 configuration 表示
ImageLoader
的配置信息,可包括图片最大尺寸、线程池、缓存、下载器、解码器等等。


1.2.2 Manifest 配置

<manifest>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:name=".YourApplication"
…… >
……
</application>
</manifest>


添加网络权限。如果允许磁盘缓存,需要添加写外设的权限。


1.2.3 下载显示图片


下载图片,解析为 Bitmap 并在 ImageView 中显示。
imageLoader.displayImage(imageUri, imageView);


下载图片,解析为 Bitmap 传递给回调接口。
imageLoader.loadImage(imageUri, new SimpleImageLoadingListener() {
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
// 图片处理
}
});


以上是简单使用,更复杂 API 见本文
详细设计



1.3 特点

可配置度高。支持任务线程池、下载器、解码器、内存及磁盘缓存、显示选项等等的配置。
包含内存缓存和磁盘缓存两级缓存。
支持多线程,支持异步和同步加载。
支持多种缓存算法、下载进度监听、ListView 图片错乱解决等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: