文档章节

Android Universal Image Loader 源码分析(一)

k
 kim366
发布于 2016/05/13 19:15
字数 412
阅读 4
收藏 1

本文为 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 初始化

添加完依赖后在ApplicationActivity中初始化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 图片错乱解决等。



本文转载自:http://blog.csdn.net/oyangyujun/article/details/47415347

共有 人打赏支持
k
粉丝 1
博文 129
码字总数 0
作品 0
朝阳
私信 提问
Android 使用Universal Image Loader绘制带圆角的图片(一)

Android 使用Universal Image Loader绘制带圆角的图片(一) 绘制带圆角的控件难吗?貌似不难。对于一个普通layout或者widget,要绘制圆角,只要把 background设置成下面这样的drawable就行了...

yhchinabest
2015/07/20
0
0
github上的NB Android项目

最近想捣鼓捣鼓Android,下了Oschina的android client source,看得挺舒服的,写得很清晰,受益匪浅,想再深入了解下,当然是接着看优秀开源项目咯。google到CSDN上的“直接拿来用,最火的A...

pengzai
2013/05/13
0
0
安卓图片加载框架--Universal-Image-Loader

  今天来介绍图片加载的框架Android-Universal-Image-Loader   GITHUB上的下载路径为:https://github.com/nostra13/Android-Universal-Image-Loader   也可以自行百度下载。   首先...

痞子姜
2015/09/18
0
0
android 图片加载之边下载边显示的讨论。

最近,接触的项目的图片加载都有不少的应用。大概了解了,不外乎一下几种,或者兼顾几种做法: |-采用缓存来提高用户体验,也节约流量。 |-缓存上做文章,采用多种策略的缓存模式,来达到更加...

Justin_Chiang
2013/12/25
1K
7
最美应用-从Android研发工程师的角度之[最美时光]

最美应用-从Android研发工程师的角度之最美时光 @author ASCE1885的 Github 简书 微博 CSDN 最近发现最美应用这样一个网站,它会定期推介一些很有意思的app,作为开发者,每次看到很棒的app...

2tman
2015/08/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux下端口转发工具rinetd介绍

linux下简单好用的工具rinetd,实现端口映射/转发/重定向,针对TCP协议,不支持UDP。 官网地址 http://www.boutell.com/rinetd 里面介绍及使用齐全。 使用场景举例: 阿里云内网Redis连接问题...

ouhoo
30分钟前
4
0
Oracle学习日志-5(算数运算符,比较运算符和逻辑运算符)

因为有编程基础,所以对于这一章还是很好理解,只需要注意对NULL的运算。 操作的表格 算数运算符 查询商品名字和商品售价,并商品售价乘2 SELECT product_name,sale_price * 2 AS "sale_pri...

白话
43分钟前
1
0
搜索引擎(Lucene介绍、分词器详解)

Lucene介绍 Lucene简介 最受欢迎的java开源全文搜索引擎开发工具包。提供了完整的查询引擎和索引引擎,部分文本分词引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简...

这很耳东先生
47分钟前
4
0
quartz详细介绍

quartz常用api Scheduler 调度程序交互的主要API。 Job 希望由调度程序执行的组件实现的接口。 JobDetail 用于定义作业的实例。 JobDataMap 可以包含不限量的序列化数据,在job运行的时候可以...

大笨象会跳舞吧
48分钟前
2
0
kotlin使用jackson序列化enum

默认情况下,我们序列化与反序列化enum是它的name,事实上大部分情况下我们需要序列化的是我们自定义的value,那应该怎么做呢? 这种情况下我们就需要@JsonValue与@JsonCreator data class U...

weidedong
52分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部