Android Universal Image Loader 源码分析(一)
2015-08-11 09:44
495 查看
本文为 Android 开源项目源码解析 中 Android Universal Image Loader
部分
项目地址:Android-Universal-Image-Loader,分析的版本:eb794c3,Demo
地址:UIL Demo
分析者:huxian99,校对者:Grumoon、Trinea,校对状态:完成
Android Universal Image Loader 是一个强大的、可高度定制的图片缓存,本文简称为
简单的说 UIL 就做了一件事——获取图片并显示在相应的控件上。
1.2.1 初始化
添加完依赖后在
其中 configuration 表示
1.2.2 Manifest 配置
添加网络权限。如果允许磁盘缓存,需要添加写外设的权限。
1.2.3 下载显示图片
下载图片,解析为 Bitmap 并在 ImageView 中显示。
下载图片,解析为 Bitmap 传递给回调接口。
以上是简单使用,更复杂 API 见本文
可配置度高。支持任务线程池、下载器、解码器、内存及磁盘缓存、显示选项等等的配置。
包含内存缓存和磁盘缓存两级缓存。
支持多线程,支持异步和同步加载。
支持多种缓存算法、下载进度监听、ListView 图片错乱解决等。
部分
项目地址:Android-Universal-Image-Loader,分析的版本:eb794c3,Demo
地址:UIL Demo
分析者:huxian99,校对者:Grumoon、Trinea,校对状态:完成
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 图片错乱解决等。
相关文章推荐
- AndroidStudio使用心得-打包发布
- android应用程序如何调用支付宝接口
- Android 增量更新实例
- VS2015 android 设计器不能可视化问题解决。
- AndroidManifest.xml解析
- android断点下载并显示进度,关于handler,和主线程不能联网采取子线程联网下载,和多线程下载学习
- Universal-Image-Loader(android图片缓存)
- Android开发博客推荐
- 深入浅出Android makefile(3)--LOCAL_SRC_FILES
- android解析xml的方式
- Android利用Intent与其他应用交互
- 将Eclipse代码导入到AndroidStudio的两种方式
- android实现跑马灯效果
- android动画开发
- Android屏幕适配全攻略(最权威的官方适配指导)
- Github 优质android 项目demo
- Android开发学习笔记:Intent的简介以及属性的详解
- 调用webservice时,产生android.os.NetworkOnMainThreadException错误
- Android 第三方应用广告拦截实现
- 让Android Support V4中的SwipeRefreshLayout支持上拉加载更多