UniversalImageLoader实现无图模式
来源:互联网 发布:搜狐影音for mac 编辑:程序博客网 时间:2024/04/30 03:32
UniversalImageLoader这个就不用过多介绍了,一个强大的图片加载工具。但是原生的并没有提供直接设置无图模式的方法,只提供了暂停(onPause)方法。那么我们就通过修改其源代码,为其添加无图模式的功能。
当然通过引入原始JAR包是改不了源码的,我们需要下载原始项目,以项目依赖的方式引入到工程中。gitHub上面其作者的源码应该是eclipse写的,我引入到as上面没成功,这儿我找的1.9.2版本的。https://github.com/SeniorZhai/UniversalImageLoader.git
引入as就不用多说了。先找到关键代码。在ImageLoader方法中,找到displayImage方法,在里面找到LoadAndDisplayImageTask,这个就是加载本地缓存和网络下载图片的任务了;
我们马上打开,在run方法中寻找关键代码。bmp = tryLoadBitmap()就是主要的加载和显示图片的方法了。在这句话前面,我们看到先去读取了内存缓存。我们期望的无图模式是不让其加载网络数据,为用户省流量,所以我们不能在这里做手脚,需要在读取磁盘缓存后,开始网络加载前加入我们的判断逻辑。
进入tryLoadBitmap方法中,很清晰就可以看见先读取了磁盘缓存,然后才尝试网络加载图片。这里有两个方法进行网络加载图片,如下图,所以我们只需要在这两个方法的前面判断无图模式就OK了。
因为ImageLoader是一个单例,所以在其中新定义一个成员变量,来标记当前处于无图模式
private boolean forbidNotwork; //无图模式为其设置get和set方法,然后在应用设置页就只需要调用ImageLoader.getInstances.setForbidNetWork(true)就行了。
剩下的就很简单了,在上图两个被红圈圈住的方法前面判断ImageLoader的标识位,为true就跳过不执行,就不会网络加载图片。
- UniversalImageLoader实现无图模式
- UniversalImageLoader
- UniversalImageLoader
- universalimageloader
- 使用universalimageloader实现viewpager加载网络图片轮显
- 基于universalimageloader实现的图片加载控件BlurImageView
- 基于universalimageloader实现的图片加载控件BlurImageView
- 利用jsoup实现WebView使用默认图片替换img、无图模式等功能
- universalimageloader analyze
- UniversalImageLoader小试牛刀
- universalimageloader相关
- 无js实现焦点图
- 无向图的实现
- 无向图的实现
- 无向图的实现
- 关于无模式对话框唯一性如何实现
- 单生产者单消费者模式的无锁队列实现
- 翻翻git之---基于universalimageloader实现的图片加载控件BlurImageView
- libevent学习笔记【使用篇】——Connection listeners.md
- PHP 安全性漫谈 Linux+Apache+Mysql+PHP
- retrofit2上传文件参数问题
- linux下memcached的安装
- SQLiScanner:又一款基于SQLMAP和Charles的被动SQL 注入漏洞扫描工具
- UniversalImageLoader实现无图模式
- 给UIButton里面的文本文字加shadow
- 二叉树恢复
- 码农周刊分类整理
- 文章标题
- The Best Gift
- Android Audio架构
- Java语法糖1:可变长度参数以及foreach循环原理
- android 将小图片平铺显示的做法