Android 图片加载库系列之Universal-Image-Loader

未经本人授权,不得转载!否则必将维权到底

平时做开发的时候, App 中肯定有异步加载图片,或者加载大量图片的需求。而加载图片常常会遇到许多的问题,比如说图片的错乱,OOM 等问题。相信大多数 Android 程序员都是用网络上最流行的图片加载库来实现咱们的需求。比较著名的就是 Universal-Image-Loader 、Fresco 、Picasso 、Glide 。今天首先来讲下大名鼎鼎的 Universal-Image-Loader

###一、特征:

  • 多线程下载图片,图片可以来源于网络,文件系统,项目文件夹 assets 中以及 drawable 中等

  • 支持随意的配置 ImageLoader,例如线程池,图片下载器,内存缓存策略,硬盘缓存策略,图片显示选项以及其他的一些配置

  • 支持图片的内存缓存,文件系统缓存或者 SD 卡缓存

  • 支持图片下载过程的监听

  • 根据控件 ImageView 的大小对 Bitmap 进行裁剪,减少 Bitmap 占用过多的内存

  • 较好的控制图片的加载过程,例如暂停图片加载,重新开始加载图片,一般使用在 ListView , GridView 中,滑动过程中暂停加载图片,停止滑动的时候去加载图片

  • 提供在较慢的网络下对图片进行加载

###二、设计原理:

在显示图片的时候,它会先在内存中查找;如果没有,就去本地查找;如果还没有,就开一个新的线程去下载这张图片,下载成功会把图片同时缓存到内存和本地。基于这个原理,我们可以在每次退出一个页面的时候,把 ImageLoader 内存中的缓存全都清除,这样就节省了大量内存,反正下次再用到的时候从本地再取出来就是了。此外,由于 ImageLoader 对图片是软引用的形式,所以内存中的图片会在内存不足的时候被系统回收(内存足够的时候不会对其进行垃圾回收)—— 包建强《 App 研发录》

###三、使用步骤:官方教程 Quick Setup

  1. 添加依赖:compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'

  2. 添加权限:

     <manifest>
     <!-- Include following permission if you load images from Internet -->
     <uses-permission android:name="android.permission.INTERNET" />
     <!-- Include following permission if you want to cache images on SD card -->
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_S
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值