博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android-universal-image-loader加载网络图片
阅读量:5365 次
发布时间:2019-06-15

本文共 1743 字,大约阅读时间需要 5 分钟。

android-universal-image-loader控件是一个强大的、灵活的,可定制化的一个图片加载、缓存和显示的类库。它提供了大量的可配置选项让我们可以更好的控制图片的加载和缓存。

下面就使用Android Studio来完成一个基本的类Hello World的程序。如果不能自动加载完成,则把下载好的jar放到app-libs文件夹下,并选择Add As Library添加。

  • 第一步 加载类库

    在gradle的配置中加入依赖

    compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'

  • 第二步 加入必要的权限

  • 第三步 代码中使用
mImageView = (ImageView) this.findViewById(R.id.imageview); DisplayImageOptions displayImageOptions = new DisplayImageOptions.Builder() .cacheInMemory(true) .cacheOnDisk(true).build();//内存缓存//硬盘缓存ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this) .defaultDisplayImageOptions(displayImageOptions) .build();ImageLoader.getInstance().init(config);ImageLoader.getInstance().displayImage("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1505791069929&di=0ca0784c2b89ffc0296b621bb03dc629&imgtype=0&src=http%3A%2F%2Fwww.jpgjpg.com%2Fwp-content%2Fuploads%2F2016%2F06%2F22491822_1465223421189_1920x1080.jpg", mImageView);

  

这样就轻松加载了一个网络图片!

总结:::

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

ImageLoaderConfiguration是针对图片缓存的全局配置,主要有线程类、缓存大小、磁盘大小、图片下载与解析、日志方面的配置。

ImageLoader是具体下载图片,缓存图片,显示图片的具体执行类,它有两个具体的方法displayImage(...)、loadImage(...),但是其实最终他们的实现都是displayImage(...)。

DisplayImageOptions用于指导每一个Imageloader根据网络图片的状态(空白、下载错误、正在下载)显示对应的图片,是否将缓存加载到磁盘上,下载完后对图片进行怎么样的处理。

从三者的协作关系上看,他们有点像厨房规定、厨师、客户个人口味之间的关系。ImageLoaderConfiguration就像是厨房里面的规定,每一个厨师要怎么着装,要怎么保持厨房的干净,这是针对每一个厨师都适用的规定,而且不允许个性化改变。ImageLoader就像是具体做菜的厨师,负责具体菜谱的制作。DisplayImageOptions就像每个客户的偏好,根据客户是重口味还是清淡,每一个imageLoader根据DisplayImageOptions的要求具体执行。

转载于:https://www.cnblogs.com/ls088/p/7549932.html

你可能感兴趣的文章
【零基础学习iOS开发】【02-C语言】08-基本运算
查看>>
Java 将指定字符串连接到此字符串的结尾 concat()
查看>>
Hibernate Criterion
查看>>
Python知识
查看>>
我们为什么要搞长沙.NET技术社区(三)
查看>>
杭电acm Cake
查看>>
js函数中this的指向
查看>>
c++ 引用方式传递数组
查看>>
HBase学习之路 (九)HBase phoenix的使用
查看>>
LeetCode() Remove Duplicates from Sorted Array II
查看>>
【svn】idea svn 文件上会出现一个破书
查看>>
cocos2d-x 3.0 场景切换特效汇总(转)
查看>>
The SortedMap Interface
查看>>
SniperOJ-leak-x86-64
查看>>
bzoj 4260: Codechef REBXOR (01 Trie)
查看>>
学好python
查看>>
css-IE中的border-radius和box-shadow
查看>>
利用bootstrap和webform的异步CRUD及分页
查看>>
HDUOJ 1879继续畅通工程(并查集)
查看>>
OC12_自动释放池
查看>>