UIL( Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置))

http://blog.csdn.net/vipzjyno1/article/details/23206387

  • 权限:
   由于是使用过程中会图片获取要通过网络,并且有缓存设置,所以这2个权限必须要有。
  • 设置缓存的目录
File cacheDir = StorageUtils.getOwnCacheDirectory(context, "topnews/Cache");//获取到缓存的目录地址
String imageUri = "http://site.com/image.png"; // from Web
String imageUri = "file:///mnt/sdcard/image.png"; // from SD card
String imageUri = "content://media/external/audio/albumart/13"; // from content provider
String imageUri = "assets://image.png"; // from assets
String imageUri = "drawable://" + R.drawable.image; // from drawables (only images, non-9patch)

登录 | 注册
未来之路 的专栏
只要你做的够好, 终有一天, 你会发现你得到的远比失去的要多.
目录视图摘要视图订阅
[置顶] Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)
分类: android 2014-04-09 19:38 81660人阅读 评论(79) 收藏 举报
Universal-Image-Load图片异步android网络
这个图片异步加载并缓存的类已经被很多开发者所使用,是最常用的几个开源库之一,主流的应用,随便反编译几个火的项目,都可以见到它的身影。
可是有的人并不知道如何去使用这库如何进行配置,网上查到的信息对于刚接触的人来说可能太少了,下面我就把我使用过程中所知道的写了下来,希望可以帮助自己和别人更深入了解这个库的使用和配置。
GITHUB上的下载路径为:https://github.com/nostra13/Android-Universal-Image-Loader ,下载最新的库文件,并且导入到项目的LIB下便可以使用。
该库以及DEMO本地下载链接:下载地址
一、介绍

Android-Universal-Image-Loader是一个开源的UI组件程序,该项目的目的是提供一个可重复使用的仪器为异步图像加载,缓存和显示。所以,如果你的程序里需要这个功能的话,那么不妨试试它。因为已经封装好了一些类和方法。我们 可以直接拿来用了。而不用重复去写了。其实,写一个这方面的程序还是比较麻烦的,要考虑多线程,缓存,内存溢出等很多方面。但是,你也可以参考这个例子来自己写出更好的程序。在此为大家介绍一下:

二、特点

多线程的图像加载
的可能性的宽调谐对ImageLoader的配置(线程池的大小,HTTP选项,内存和光盘高速缓存,显示图像,以及其他)
的图像的可能性中的缓存存储器和/或设备的文件器系统(或SD卡)
可以“听”加载过程中
可自定义每个显示的图像调用分隔的选项
Widget支持
Android 1.5以上支持
简单描述一下这个项目的结构:每一个图片的加载和显示任务都运行在独立的线程中,除非这个图片缓存在内存中,这种情况下图片会立即显示。如果需要的图片缓存在本地,他们会开启一个独立的线程队列。如果在缓存中没有正确的图片,任务线程会从线程池中获取,因此,快速显示缓存图片时不会有明显的障碍。(别人那边借鉴的这段)
流程图:

三、使用方法
这是 一个开源的Android关于下载显示图片的工具类,在这个下载包里面jar文件,用于我们导入项目使用,具体使用方法在包里面也含有。下面是一个例子:
[java] view plaincopy在CODE上查看代码片派生到我的代码片

由于是使用过程中会图片获取要通过网络,并且有缓存设置,所以这2个权限必须要有。

很多人想知道如何设置缓存的目录,可以通过以下方法:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
File cacheDir = StorageUtils.getOwnCacheDirectory(getApplicationContext(), “imageloader/Cache”);
//这个是你希望的缓存文件的目录:imageloader/Cache

之后在ImageLoaderConfiguration的配置文件中通过设置
[java] view plaincopy在CODE上查看代码片派生到我的代码片
.discCache(new UnlimitedDiscCache(cacheDir))//自定义缓存路径
方法来设置该应用的图片缓存路径。

下面我们就来开始看如何使用这个图片异步加载库把:

一.
先要配置ImageLoaderConfiguration这个类实现全局ImageLoader的实现情况。
可以选择在Application中初始化设置该类。
[java] view plaincopy在CODE上查看代码片派生到我的代码片
ImageLoaderConfiguration config = new ImageLoaderConfiguration
.Builder(context)
.memoryCacheExtraOptions(480, 800) // max width, max height,即保存的每个缓存文件的最大长宽
.discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75, null) // Can slow ImageLoader, use it carefully (Better don’t use it)/设置缓存的详细信息,最好不要设置这个
.threadPoolSize(3)//线程池内加载的数量
.threadPriority(Thread.NORM_PRIORITY - 2)
.denyCacheImageMultipleSizesInMemory()
.memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) // You can pass your own memory cache implementation/你可以通过自己的内存缓存实现
.memoryCacheSize(2 * 1024 * 1024)
.discCacheSize(50 * 1024 * 1024)
.discCacheFileNameGenerator(new Md5FileNameGenerator())//将保存的时候的URI名称用MD5 加密
.tasksProcessingOrder(QueueProcessingType.LIFO)
.discCacheFileCount(100) //缓存的文件数量
.discCache(new UnlimitedDiscCache(cacheDir))//自定义缓存路径
.defaultDisplayImageOptions(DisplayImageOptions.createSimple())
.imageDownloader(new BaseImageDownloader(context, 5 * 1000, 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)超时时间
.writeDebugLogs() // Remove for release app
.build();//开始构建
// Initialize ImageLoader with configuration.
以上的配置看个人需求进行选择,不是所有都要进行配置。
配置好ImageLoaderConfiguration后,调用以下方法来实现初始化:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
ImageLoader.getInstance().init(config);//全局初始化此配置
注:ImageLoaderConfiguration 配置中的.discCacheFileNameGenerator()方法是将缓存下来的文件以什么方式命名
里面可以调用的方法有 1.new Md5FileNameGenerator() //使用MD5对UIL进行加密命名
2.new HashCodeFileNameGenerator()//使用HASHCODE对UIL进行加密命名
二.
使用ImageLoader进行图片加载的时候,先要实例化ImageLoader,调用以下方法进行实例化,在每个布局里面都要实例化后再使用。
[java] view plaincopy在CODE上查看代码片派生到我的代码片
protected ImageLoader imageLoader = ImageLoader.getInstance();
之后进行显示的图片的各种格式DisplayImageOptions 的设置:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
DisplayImageOptions options;
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_launcher) //设置图片在下载期间显示的图片
.showImageForEmptyUri(R.drawable.ic_launcher)//设置图片Uri为空或是错误的时候显示的图片
.showImageOnFail(R.drawable.ic_launcher) //设置图片加载/解码过程中错误时候显示的图片
.cacheInMemory(true)//设置下载的图片是否缓存在内存中
.cacheOnDisc(true)//设置下载的图片是否缓存在SD卡中
.considerExifParams(true) //是否考虑JPEG图像EXIF参数(旋转,翻转)
.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)//设置图片以如何的编码方式显示
.bitmapConfig(Bitmap.Config.RGB_565)//设置图片的解码类型//
.decodingOptions(android.graphics.BitmapFactory.Options decodingOptions)//设置图片的解码配置
//.delayBeforeLoading(int delayInMillis)//int delayInMillis为你设置的下载前的延迟时间
//设置图片加入缓存前,对bitmap进行设置
//.preProcessor(BitmapProcessor preProcessor)
.resetViewBeforeLoading(true)//设置图片在下载前是否重置,复位
.displayer(new RoundedBitmapDisplayer(20))//是否设置为圆角,弧度为多少
.displayer(new FadeInBitmapDisplayer(100))//是否图片加载好后渐入的动画时间
.build();//构建完成
按照你所需要的配置去设置,如果不需要的就可以不做配置。

注:

以上配置中的:
1).imageScaleType(ImageScaleType imageScaleType) 是设置 图片的缩放方式
缩放类型mageScaleType:

          EXACTLY :图像将完全按比例缩小的目标大小EXACTLY_STRETCHED:图片会缩放到目标大小完全IN_SAMPLE_INT:图像将被二次采样的整数倍IN_SAMPLE_POWER_OF_2:图片将降低2倍,直到下一减少步骤,使图像更小的目标大小NONE:图片不会调整

2).displayer(BitmapDisplayer displayer) 是设置 图片的显示方式

  显示方式displayer:RoundedBitmapDisplayer(int roundPixels)设置圆角图片FakeBitmapDisplayer()这个类什么都没做FadeInBitmapDisplayer(int durationMillis)设置图片渐显的时间

        SimpleBitmapDisplayer()正常显示一张图片  

之后按照需求调用
1.纯粹为了加载默认配置的一个图片的

方法:
public void displayImage(String uri, ImageView imageView) {}
具体实现:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
ImageLoader.getInstance().displayImage(imageUrl, imageView); // imageUrl代表图片的URL地址,imageView代表承载图片的IMAGEVIEW控件
2.加载自定义配置的一个图片的

方法:
public void displayImage(String uri, ImageView imageView, DisplayImageOptions options) {}
具体实现:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
ImageLoader.getInstance().displayImage(imageUrl, imageView,options); // imageUrl代表图片的URL地址,imageView代表承载图片的IMAGEVIEW控件 , options代表DisplayImageOptions配置文件

3.图片加载时候带加载情况的监听

方法:
public void displayImage(String uri, ImageAware imageAware, DisplayImageOptions options,ImageLoadingListener listener) {}
ImageLoadingListener 用于监听图片的下载情况。
具体实现:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
imageLoader.displayImage(imageUrl, imageView, options, new ImageLoadingListener() {
@Override
public void onLoadingStarted() {
//开始加载的时候执行
}
@Override
public void onLoadingFailed(FailReason failReason) {
//加载失败的时候执行
}
@Override
public void onLoadingComplete(Bitmap loadedImage) {
//加载成功的时候执行
}
@Override
public void onLoadingCancelled() {
//加载取消的时候执行

}});

4.图片加载时候,带监听又带加载进度条的情况
调用:
public void loadImage(String uri, ImageSize targetImageSize, DisplayImageOptions options,
ImageLoadingListener listener, ImageLoadingProgressListener progressListener) {}
具体实现:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
imageLoader.displayImage(imageUrl, imageView, options, new ImageLoadingListener() {
@Override
public void onLoadingStarted() {
//开始加载的时候执行
}
@Override
public void onLoadingFailed(FailReason failReason) {
//加载失败的时候执行
}
@Override
public void onLoadingComplete(Bitmap loadedImage) {
//加载成功的时候执行
}
@Override
public void onLoadingCancelled() {
//加载取消的时候执行
},new ImageLoadingProgressListener() {
@Override
public void onProgressUpdate(String imageUri, View view, int current,int total) {
//在这里更新 ProgressBar的进度信息
}
});

四、注意事项
1.上述提到的2个权限必须加入,否则会出错
2.ImageLoaderConfiguration必须配置并且全局化的初始化这个配置ImageLoader.getInstance().init(config); 否则也会出现错误提示
3.ImageLoader是根据ImageView的height,width确定图片的宽高。
4.如果经常出现OOM(别人那边看到的,觉得很有提的必要)
①减少配置之中线程池的大小,(.threadPoolSize).推荐1-5;
②使用.bitmapConfig(Bitmap.config.RGB_565)代替ARGB_8888;
③使用.imageScaleType(ImageScaleType.IN_SAMPLE_INT)或者 try.imageScaleType(ImageScaleType.EXACTLY);
④避免使用RoundedBitmapDisplayer.他会创建新的ARGB_8888格式的Bitmap对象;
⑤使用.memoryCache(new WeakMemoryCache()),不要使用.cacheInMemory();

下面有人问到如何加载本地图片什么的,之后把那位亲的回答补充上来,谢谢各位大大提出的不足(那时候用的时候只想到用网络图片了,所以也没考虑这么多)。
String imageUri = “http://site.com/image.png“; // from Web
String imageUri = “file:///mnt/sdcard/image.png”; // from SD card
String imageUri = “content://media/external/audio/albumart/13”; // from content provider
String imageUri = “assets://image.png”; // from assets
String imageUri = “drawable://” + R.drawable.image; // from drawables (only images, non-9patch)

大致就说到这里,可能有的地方不足欢迎提出,希望大家可以更加容易入手、使用这个库。

版权声明:本文为博主原创文章,未经博主允许不得转载。
上一篇Android开源项目 分类 便于查看
下一篇Android 命名规范 (提高代码可以读性)

121

5
主题推荐图片异步class库
猜你在找
Java Swing、JDBC开发桌面级应用Java基础核心技术:网络编程(day20)Java基础核心技术:多线程(day16-day17)Android入门实战教程反编译Android应用
查看评论
62楼 zjcdqi 昨天 13:20发表 [回复]

如何加载从webservice接口调用的string图片?
61楼 u011934959 2015-09-28 17:57发表 [回复]

问下,怎样支持https 路径下的图片呢??
60楼 u011934959 2015-09-28 17:15发表 [回复]

已解决 ,发现不能把DisplayImageOptions 对象传进去,imageLoader.displayImage(mReport.getPicurl(), ivReport);
59楼 u011934959 2015-09-28 17:02发表 [回复]

call to OpenGL ES API with no current context (logged once per thread)
58楼 u011934959 2015-09-28 16:44发表 [回复]

图片加载不了
57楼 kuyuzhiqi 2015-09-08 15:38发表 [回复]

我用imageloader加载图片后,同时设置缓存,并且希望另外的界面也用到该缓存,但缓存的文件没有后缀;不知道能不能先下载图片,然后在另外的界面用这种方式加载。
56楼 kuyuzhiqi 2015-09-08 15:38发表 [回复]

我用imageloader加载图片后,同时设置缓存,并且希望另外的界面也用到该缓存,但缓存的文件没有后缀;不知道能不能先下载图片,然后在另外的界面用这种方式加载。
55楼 weiqingsong150 2015-08-31 12:42发表 [回复]

楼主啊按你说的设置了也会内存溢出啊 ! 求解决 谢谢
54楼 suhaiqiangxue 2015-08-26 20:55发表 [回复]

l楼主写得真好 赞一个
53楼 伤陌1991 2015-08-14 17:58发表 [回复]

这个库类在使用的时候必须要初始化,有时候加载不完经常报错。
52楼 伤陌1991 2015-08-14 17:56发表 [回复]

不错,以前用这个
51楼 家吗家吗地 2015-07-28 00:33发表 [回复]

mark
50楼 孤星泪100 2015-07-04 18:01发表 [回复]

很详细,赞一个!
发现一个小问题:注意事项的第二项。可以不执行ImageLoader.getInstance().init(config);直接执行ImageLoader.getInstance().displayImage()就可以。
Re: LeoLeoHan 2015-09-03 11:53发表 [回复]

回复HOLDONX:同意。
49楼 CreazyBlade 2015-06-18 14:09发表 [回复]

发现一个问题,cacheOnDisc(true),当设置为true时,processbar可以显示进度,但是当设置为false时,processbar就不能显示进度,进度一直为0;
这是为啥;
48楼 And_My 2015-05-06 20:01发表 [回复]

请教一下,如果不设置自定义的sd卡缓存路径,图片会缓存到那个目录下?
测试了一下,不设置自定义的sd卡缓存路径,在模拟器中可以看到,但是在真是的手机中找不到缓存的图片???
47楼 crazy_sniper 2015-04-08 11:18发表 [回复]

如何配置只加载缓存呢,比如ViewPager啊,当预加载的时候只加载缓存,如果加载缓存成功,那可见的时候就不再加载;如果失败,则直接加载网络请求。
46楼 freestyle_zmy 2015-03-16 22:53发表 [回复]

如何把storage/emulated/0/DCIM/Camera/转换成file:///mnt/sdcard/image.png这样的路径
Re: sinat_22299167 2015-03-19 16:44发表 [回复]

回复freestyle_zmy:uri=”File://”+路径,我试了下这样就可以了
45楼 Aad_yang 2015-03-09 09:48发表 [回复]

很详细
44楼 不二庚庚 2015-02-02 12:28发表 [回复]

多谢楼主的文章!
43楼 AndroidGhost 2015-01-27 17:30发表 [回复]

请问楼主,Md5加密后的图片怎么从文件读出来
42楼 woliujialin 2015-01-05 23:37发表 [回复]

请问楼主能说一下接口吗?
41楼 不安自卓 2015-01-03 14:52发表 [回复]

写的灰常详细,受教了。
40楼 jt704167880 2014-12-29 16:49发表 [回复]

ImageLoadingProgressListener 接口没有调用 请问是怎么回事???
39楼 heaven119 2014-12-26 23:39发表 [回复]

使用ImageLoader进行图片加载的时候,先要实例化ImageLoader,调用以下方法进行实例化,在每个布局里面都要实例化后再使用。

ImageLoader.getInstance();

这个不是什么”先要实例化”,而是获得ImageLoader的实例,并且这个实例是单例的,也就是说整个系统只有一个ImageLoader实例.

还有 , ImageLoader.getInstance().init(config);//全局初始化此配置 —– 这个方法只需要在整个应用程序调用一次就行,多次调用不会出错,会出现一个警告,并且只会使用第一次的config.
38楼 vampire_333 2014-12-16 17:42发表 [回复]

求教求教。。。。
有没有发现,1.9.3的版本,会使长图显示模糊?这是新版做了什么改动吗?哪里出了问题呢?该咋解决呀。。。试了去掉硬件加速,可以清晰显示,还是想要弄明白新版做了什么改动导致的问题。。。。3q
37楼 阿啊实打实的 2014-12-08 18:07发表 [回复]

为什么我第一次进去的页面 没有加载完 一个页面能看到24张图片 但显示了12张 往下滑动的时候就好了
36楼 tskdqq 2014-12-08 13:34发表 [回复]

楼主,我给jar包连接上了源码但是不能显示javadoc,按ctrl单击类名也不能查看源码,这是怎么回事啊,求助,
35楼 UU_ggg 2014-12-04 15:22发表 [回复]

楼主你好,这个有没有改变图片尺寸的方法呢?是这个配置吗 .decodingOptions(decodingOptions) ;我这边需要把下载的图片弄成指定宽度,高度的图片。我给它设置上面的方法好像没用啊
34楼 zjy_hll 2014-12-01 18:33发表 [回复]

我发现了。。
我用的中文的问号。。。。
33楼 lee2han 2014-11-14 14:57发表 [回复]

nice
32楼 知了聊事 2014-11-13 15:00发表 [回复]

在listview中加载大图,一有缓存的时候,快速滑动会卡,希望博主这个问题可以优化下。
31楼 知了聊事 2014-11-13 14:55发表 [回复]

我的本地图片加载不出来。
30楼 ouyanghuidelove 2014-11-03 11:24发表 [回复]

不错,这个工具挺好用的,谢谢楼主!
29楼 daxiong2013 2014-10-26 18:11发表 [回复]

首先表示楼主写的真心好! 楼主能不能给个 Demo啊 我是 还是技术小白!按楼主说的做了做了两次实例了 都没成功! 邮箱 873764182@qq.com
28楼 Jasonez 2014-10-24 19:57发表 [回复]

你好,imageloader不是解决了列表加载图片错位的问题吗,我用的nexus4加载图片不会错位,但是公司的中兴手机加载图片缺错位了!~
27楼 qu_haifeng 2014-09-28 17:28发表 [回复]

请问在初始化那些参数是应该放在进入画面中初始化还是放在Application里只初始化一次呢?
26楼 iloveaman 2014-09-19 23:46发表 [回复]

LIstView 下拉刷新的时候notifyDateChanged()的图片时候会有明显的闪动,请问这个怎么解决?
25楼 Android将军 2014-09-11 17:04发表 [回复]

恩,顶一下,不错的文章
24楼 weiwei2012start 2014-09-10 21:10发表 [回复]

很不错的文章,谢谢楼主分享。
23楼 ArthasFung 2014-09-05 22:43发表 [回复]

這個有沒有縮放圖片的功能?
22楼 春暖花开_涛 2014-09-04 09:15发表 [回复]

楼主,如果我修改了后台的一张图片,现在马上又想取到这张图片,但是用这个方法,会取到缓存里面没有修改的图片,但是我想重新请求一边,这个方法有没有什么借口可以实现。
21楼 天之傷 2014-08-28 15:10发表 [回复]

楼主,为什么我只能加载png图片,不能加载jpg图片吗?
20楼 ChoingHyun 2014-08-24 18:09发表 [回复]

楼主,默认情况下,缓存到SD卡什么位置了,我用它加载图片感觉非常慢,不知道问题出在什么地方了
19楼 T-1600 2014-08-20 18:27发表 [回复]

你好,请问我怎么配置才能使sd卡缓存的就是下载下来的图片,而不是加密后的文件?用FileNameGenerator不行啊
18楼 zbeng1130 2014-08-14 18:04发表 [回复]

楼主,怎么sample文件夹不能导入到Eclipse里面去?
17楼 小小木桶 2014-08-13 16:04发表 [回复]

能根据这个图片的url,去找到这个图片的bitmap吗?
,有这个方法么
Re: chen030509 2014-08-27 11:38发表 [回复]

回复u010724117:imageLoader.getDiscCache().get(imageUri).getPath();
网上找到的
16楼 狼行十方 2014-08-11 16:09发表 [回复]

请问下LZ,就是我没设置缓存路径那默认的是什么?如果设置了缓存路径,那我下次再加载的时候是不是会直接从缓存路径读取图片的?
15楼 sunsnow8 2014-08-01 01:13发表 [回复]

RoundedBitmapDisplayer(int roundPixels)设置圆角图片,用在ImagePagerActivity里就显示不出来图片,是为什么呢,谢谢
14楼 墨名次 2014-07-31 15:56发表 [回复]

非常好的文章
13楼 superabstract 2014-07-29 14:35发表 [回复]

楼主你好,请假一下这个组件遇到的问题:
1.设置图片圆角显示有时候圆角,有时候又不是圆角的,楼主知道是哪里的问题吗
2.用这个组件加载大量大图片时还是会oom,请问楼主有好的解决方案吗
谢谢
12楼 liyeo 2014-07-23 14:24发表 [回复]

谢谢楼主的分享,我有个小问题,listview内容发生改变时,图片会有闪烁的情况,不知道楼主是否有遇到过
Re: changeordie 2014-07-24 13:56发表 [回复]

回复liyeo:把.displayer(new FadeInBitmapDisplayer(100))去掉
Re: liyeo 2014-08-04 10:53发表 [回复]

回复changeordie:谢谢了,问题解决。
多多向你学习啊
11楼 junlin15823443861 2014-07-13 06:55发表 [回复]

https://github.com/nostra13/Android-Universal-Image-Loader这里面的sample项目运行出现”input/output error”
Re: u010307976 2014-08-02 17:12发表 [回复]

回复junlin15823443861:是不是你没有SD卡的缘故,我之前没SD卡就出现了这个错误
Re: junlin15823443861 2014-08-02 23:52发表 [回复]

回复u010307976:果然中了
10楼 KistenTong 2014-07-11 10:53发表 [回复]

会优先读取缓存里面的内容吗?
9楼 ksparking 2014-06-18 16:25发表 [回复]

非常详细明了。有个小问题,比如点击listView中的item会进入一个新界面加载图片,每个界面有几十张图片需要显示。当我后退再次点击item进入加载,内存会有明显的释放,然后重新占用内存。 问题来了,我后退了(内存并没有释放),并没有再次点击item,而是操作应用中其他界面了,但这次的内存却没有释放…内存处于一直在增加状态,请问有什么办法可以及时释放内存吗? —我在onDestroy()中加上过mImageLoader.clearMemoryCache().效果不好…
8楼 Mr_ye 2014-05-23 11:34发表 [回复]

那如果我要清除缓存呢,这个框架里有没有清除缓存的方法
Re: feishin 2014-06-05 08:37发表 [回复]

回复Mr_ye:imageloader.clear*Cache
7楼 iamnotterminator 2014-05-22 11:24发表 [回复]

多线程的图像加载
的可能性的宽调谐对ImageLoader的配置(线程池的大小,HTTP选项,内存和光盘高速缓存,显示图像,以及其他)
的图像的可能性中的缓存存储器和/或设备的文件器系统(或SD卡)
可以“听”加载过程中
可自定义每个显示的图像调用分隔的选项

楼主试试谷歌翻译吧,比金山翻译好多了!!!!1
Re: vipra 2014-05-22 12:49发表 [回复]

回复sikaoshijie:我其实用的是有道= =
6楼 iamnotterminator 2014-05-22 11:23发表 [回复]

多线程的图像加载
的可能性的宽调谐对ImageLoader的配置(线程池的大小,HTTP选项,内存和光盘高速缓存,显示图像,以及其他)
的图像的可能性中的缓存存储器和/或设备的文件器系统(或SD卡)
可以“听”加载过程中
可自定义每个显示的图像调用分隔的选项

楼主试试谷歌翻译吧,比金山翻译好多了!!!!!!!!!!!!!!!!!!!!!!!!11
5楼 福州小安卓 2014-05-19 15:12发表 [回复]

感谢楼主 写的挺好
4楼 q197585312 2014-05-07 07:32发表 [回复]

调用 在项目中的 list 的 adapter 中调用displayImage()当快速滑动 出现 图片错位 该怎么解决呢 大神
3楼 q197585312 2014-05-07 07:31发表 [回复]

调用 在项目中的 list 的 adapter 中调用displayImage()当快速滑动 出现 图片错位 该怎么解决呢 大神
Re: 恒丰小chi 2014-06-23 14:27发表 [回复]

回复q197585312:你可以通过设置一个tag,来区分,还有用loadImage()加载图片
Re: Crazy的 2014-05-07 09:16发表 [回复]

回复q197585312:listview里最好用
ImageLoader.getInstance().displayImage(uri, imageAware, options); 这个方法 , 不会每次都发起网络请求
2楼 Crazy的 2014-05-06 18:10发表 [回复]

首先感谢楼主写这么详细
发现一个小问题. 在DisplayImageOptions 的设置里 .considerExifParams(true) 是设置 是否考虑JPEG图像EXIF参数(旋转,翻转) 而不是 设置图片下载前的延迟 delayBeforeLoading(int) 是设置下载前的延迟
Re: vipra 2014-05-06 19:21发表 [回复]

回复ccclll1990:谢谢你的小问题,刚发现那时候发上来的时候这些问题都没注意到,差点误人子弟了哈哈,现在已做修改
1楼 糖果猪猪 2014-05-06 16:39发表 [回复]

问下,如果是本地图片呢?也可以用这个吗?不是网络的
Re: Crazy的 2014-05-06 18:12发表 [回复]

支持
[java] view plaincopy
String imageUri = “http://site.com/image.png“; // from Web
String imageUri = “file:///mnt/sdcard/image.png”; // from SD card
String imageUri = “content://media/external/audio/albumart/13”; // from content provider
String imageUri = “assets://image.png”; // from assets
String imageUri = “drawable://” + R.drawable.image; // from drawables (only images, non-9patch)
Re: 糖果猪猪 2014-05-07 11:15发表 [回复]

回复ccclll1990:Thanks
Re: vipra 2014-05-06 19:23发表 [回复]

回复ccclll1990:嗯,就是这样,看来我要把你的这个信息补进博文里面去了,3Q
Re: Crazy的 2014-05-06 20:08发表 [回复]

回复vipzjyno1:我也是在github看的英文注释 然后看的其他人的blog里写的都是错误的…
Re: AndroidMaLin 2014-12-08 12:54发表 [回复]

回复ccclll1990:同感,还是自己去看github看的英文文档吧
您还没有登录,请[登录]或[注册]
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
核心技术类目
全部主题 Hadoop AWS 移动游戏 Java Android iOS Swift 智能硬件 Docker OpenStack VPN Spark ERP IE10 Eclipse CRM JavaScript 数据库 Ubuntu NFC WAP jQuery BI HTML5 Spring Apache .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace Web App SpringSide Maemo Compuware 大数据 aptech Perl Tornado Ruby Hibernate ThinkPHP HBase Pure Solr Angular Cloud Foundry Redis Scala Django Bootstrap
个人资料
访问我的空间
vipra

访问:658417次
积分:4943
等级:
排名:第2760名
原创:22篇转载:7篇译文:0篇评论:734条
Github,爱开源、分享
https://github.com/Rano1
文章分类
转载(7)
感悟期望(2)
疑问(0)
android(20)
文章存档
2014年05月(6)
2014年04月(14)
2014年03月(8)
2014年02月(1)
阅读排行
Android APK反编译就这么简单 详解(附图)(203575)
Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)(81637)
Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)(57390)
Android 命名规范 (提高代码可以读性)(31076)
SwitchButton 开关按钮 的多种实现方式 (附源码DEMO)(25555)
Android SlidingMenu 开源项目 侧拉菜单的使用(详细配置)(24604)
(android高仿系列)今日头条 –新闻阅读器 (三) 完结 、总结 篇(22372)
Android如何防止apk程序被反编译(19738)
(android高仿系列)今日头条 –新闻阅读器 (二)(18758)
(android高仿系列)今日头条 –新闻阅读器 (一)(18460)
评论排行
(android高仿系列)今日头条 –新闻阅读器 (三) 完结 、总结 篇(105)
Android APK反编译就这么简单 详解(附图)(81)
Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)(80)
Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)(79)
(android高仿系列)今日头条 –新闻阅读器 (二)(75)
Android 高仿 频道管理—-网易、今日头条、腾讯视频 (可以拖动的GridView)附源码DEMO(48)
一个菜鸟对于过去和未来的感悟和展望(39)
(android高仿系列)今日头条 –新闻阅读器 (一)(30)
SwitchButton 开关按钮 的多种实现方式 (附源码DEMO)(30)
Android 仿 窗帘效果 和 登录界面拖动效果 (Scroller类的应用) 附 2个DEMO及源码(27)
推荐文章
* 最老程序员创业开发实训4–IOS平台下MVC架构
* Android基础入门教程–6.1 数据存储与访问之–文件存储读写
* 聊天界面的制作(三)–表情列表发送功能
* Linux下编程–文件与IO(三) 文件共享和fcntl函数
* Windows 多进程通信API总结
* libuv里的几个缺陷
最新评论
Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)
zjcdqi: 如何加载从webservice接口调用的string图片?
Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)
outdoorsmanm: 楼主总结的非常好,.setContentIntent(getDefalutIntent(Notifi…
Android APK反编译就这么简单 详解(附图)
mqy521133: 没有反编译成功,不知道为啥
Android APK反编译就这么简单 详解(附图)
Aiello_Chen: 6666666666666666….无限多个6。成功了,第一次反编译,而且遇到的还是没有混淆过的…
Android APK反编译就这么简单 详解(附图)
qq_30350981: 谢谢楼主分享,CSDN免费资源不多啊
Android APK反编译就这么简单 详解(附图)
MasterXiaoTang: 顶
Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)
搁浅的小鱼: 博主写得真详细,学习了
SwitchButton 开关按钮 的多种实现方式 (附源码DEMO)
wheat: 使用代码,在android V5 下可以显示。在V4 下不能显示。
Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)
u011934959: 问下,怎样支持https 路径下的图片呢??
Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)
u011934959: 已解决 ,发现不能把DisplayImageOptions 对象传进去,imageLoader.di…
公司简介|招贤纳士|广告服务|银行汇款帐号|联系方式|版权声明|法律顾问|问题报告|合作伙伴|论坛反馈
网站客服杂志客服微博客服webmaster@csdn.net400-600-2320|北京创新乐知信息技术有限公司 版权所有|江苏乐知网络技术有限公司 提供商务支持
京 ICP 证 070598 号|Copyright © 1999-2014, CSDN.NET, All Rights Reserved GongshangLogo

Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)相关推荐

  1. android复位机器人图片_Universal-Image-Loader 图片异步加载类库还不熟?

    码个蛋(codeegg) 第 824 次推文 作者:欢醉 博客:https://cloud.tencent.com/developer/article/1026386 码妞看世界 写在前面 这个图片异 ...

  2. ImageLoader 图片异步加载类库的使用

    http://blog.csdn.net/vipzjyno1/article/details/23206387 这个图片异步加载并缓存的类已经被很多开发者所使用,是最常用的几个开源库之一,主流的应用, ...

  3. Android 图片异步加载的体会,SoftReference已经不再适用

    在网络上搜索Android图片异步加载的相关文章,目前大部分提到的解决方案,都是采用Map<String, SoftReference<Drawable>>  这样软引用的方式 ...

  4. android webview 图片异步加载,Webview 图片异步加载及bug解决

    在项目中新闻显示需要使用图片的异步加载,并且在加载图片前和加载图片失败时显示默认图片. 关于webview中图片的异步加载的思路如下: 方案一:由前端同学全权负责(使用js实现异步加载) 方案二:an ...

  5. Android 图片异步加载

    所谓图片异步加载,意思是不用一次把图片全部加载完,你可以叫它延迟加载,缓冲加载都行. 看看你有没有这种需求:某篇文章图片很多,如果在载入文章时就载入所有图片,无疑会延缓载入速度,让用户等更久,所以,我 ...

  6. ListView中的图片异步加载、缓存

    一.ListView的图片异步加载 我们都知道对每一个Weibo Item都有用户头像,而且每一条微博还可能带有图片.如果在加载列表的同时加载图片,这样有几个缺点,第一很费事,界面卡住,用户体验很不好 ...

  7. 基于jQuery的图片异步加载和预加载实例

    如今的网页中有很多图片,比如相册列表,那么如果一次性读取图片将会瞬间加重服务器的负担,所以我们用jQuery来实现图片的异步加载和预加载功能,这样在页面的可视范围内才会加载图片,当拖动页面至可视界面时 ...

  8. android图片异步加载图片,Android 异步加载图片分析总结

    研究了android从网络上异步加载图像,现总结如下: (1)由于android UI更新支持单一线程原则,所以从网络上取数据并更新到界面上,为了不阻塞主线程首先可能会想到以下方法. 在主线程中new ...

  9. java加载图片到缓存_Android实现图片异步加载并缓存到本地

    在android应用开发的时候,加载网络图片是一个非常重要的部分,很多图片不可能放在本地,所以就必须要从服务器或者网络读取图片. 软引用是一个现在非常流行的方法,用户体验比较好,不用每次都需要从网络下 ...

最新文章

  1. 防火墙(7)——禁止具体协议
  2. Apache(2)——进程与模块
  3. [SCOI2007] 修车(费用流 + 差分时间段建图)
  4. Java虚拟机组成详解
  5. 服务器操作系统策略,服务器操作系统策略
  6. 开始学习redhat8,安装redhat8虚拟机
  7. [iOS] 响应式编程开发-ReactiveCocoa(一)
  8. 带括号多项式版四则运算
  9. Centos 5.2安装Cacti并集成Nagios安装文档
  10. 11g表名大小写 oracle_Oracle数据库总结
  11. 1024程序员节 | 近300本python电子书推荐
  12. 聚沙成塔--爬虫系列(四)(爬取糗事百科段子)
  13. 基于近似计算的同态加密方案CKKS17----实现库介绍
  14. 基于python代码的3D地图可视化
  15. STM32——时钟系统RCC详细介绍
  16. 利用python自动完成网页计算TEC等参数
  17. 古董电脑室:2019日记簿(二)
  18. java实现微博热搜榜_微博热搜数据监测
  19. 网银UKey登录数据签名和验签流程
  20. 使用CSS设置背景图片,图片比较大,完全显示在一个DIV中

热门文章

  1. Java单例模式的深入了解
  2. 腾讯从社群端整治淘宝客,90%的淘客群被封
  3. 爬虫入门教程 —— 1
  4. AI作画—山海经异兽
  5. 告诉你用Python赚钱的五种方法,闲余月赚1000~5000
  6. mac 查看端口占用情况 停掉端口
  7. Excel_通过VBA高亮选择单元格的行列
  8. WebSocket 在线测试
  9. java jframe创建窗体_Java中利用JFrame创建窗体
  10. PigyChan_Unity笔记