【ImageLoader】Universal-Image-Loader学习系列(一),下载及简单的使用

1.Universal-Image-Loader的简介


在Android应用开发过程中,加载和处理图片是一种非常普遍的的需求。一个好的图片处理框架对应用的性能和用户的体验有着很大的帮助。对于新手来说,自己写一个高效的图片处理框架可能有点难度。幸运的是,在图片加载处理方面已经有一些比较完善的开源项目,而且使用起来也很简单。目前用的比较多图片加载框架的有两个,一个是   Android-Universal-Image-Loader,还有一个是 picasso,前者的Star已经超过8000,后者Star也已经超过5000,都是比较成熟和完善的开源项目。因为我的项目使用的是UIL,所以我主要介绍UIL的使用。
UIL的主要特点:
异步或者同步多线程加载图片
可以灵活的配置线程池,内存缓存和磁盘缓存,图片的压缩,解码和下载等等
图片内存缓存和磁盘缓存

监听图片下载的进度

看一下Universal-Image-Loader加载网络图片的效果图吧:


2.Universal-Image-Loader的下载

UIL项目的地址是https://github.com/nostra13/Android-Universal-Image-Loader,在这里可以下载需要用到的jar包和源码,目前最新的版本是1.9.3。我重新上传了一份http://download.csdn.net/download/jiangxuqaz/8567367,包含jar包和demo,官方demo中一些图片URL不能访问,已经被我替换掉。将下载的jar包放在项目libs文件夹下面,这样就能用了。


3.Universal-Image-Loader支持的图片URI格式


"http://site.com/image.png" // 网络图片
"file:///mnt/sdcard/image.png" // SD卡图片
"file:///mnt/sdcard/video.mp4" // SD卡mp4视频的缩略图
"content://media/external/images/media/13" // 内容提供者的uri
"content://media/external/video/media/13" //内容提供者的视频uri"
assets://image.png" // Android项目assets文件夹里面的图片
"drawable://" + R.drawable.img //Android项目drawable文件夹里面的图片

特别注意的是,前缀不能少,通常SD卡获取的路径前面还要加上file://,否则UIL识别不了,图片就会加载失败。加载图片需要访问网络和SD卡,所以不要忘了加权限:

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <uses-permission android:name="android.permission.INTERNET" />  
  2. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  

4、ImageLoader简单用法


首先需要获取一个ImageLoader对象,ImageLoader采用的是单例模式,只会存在一个对象。同时,在使用前,必须要初始化配置文件,否则会抛出异常。这两部做好以后,我们就可以使用ImageLoader来加载图片了。先看看最简单的使用:

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. ImageView imageView=(ImageView)findViewById(R.id.imageView1);  
  2.         String url="http://ww4.sinaimg.cn/large/90bd89ffjw1eqvmd6o8r6j20go0p5ju2.jpg";  
  3.         //获取ImageLoader对象  
  4.         ImageLoader imageloader=ImageLoader.getInstance();  
  5.         //使用默认的ImageLoaderConfiguration  
  6.         ImageLoaderConfiguration configuration=ImageLoaderConfiguration.createDefault(this.getApplicationContext());  
  7.         //初始化ImageLoader的配置  
  8.         imageloader.init(configuration);  
  9.         //加载图片  
  10.         imageloader.displayImage(url, imageView);  

这样就可以加载网络图片了,这里面不管是ImageLoader的配置还是图片显示的配置,都是使用ImageLoader默认的,当ImageLoader的强大之处就在于它可以灵活的配置。后续文章会另外分析。虽然上面只有几行代码,其实ImageLoader使用了很多默认的配置,下一篇文章将介绍ImageLoader详细的使用方法,主要配置参数及加载图片选项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值