文档章节

ImageLoader 滑动暂停加载

新宿豪雨
 新宿豪雨
发布于 2016/07/22 18:22
字数 342
阅读 20
收藏 0

    现在还是有很多人在用ImageLoader,这个老牌的图片加载库,优点还是很多的:自动异步,自定义缓存、线程、延迟时间、等各种参数配置,能支持大多数的格式。在不对性能和适用场景做太高要求的情况下,这是一款大众皆可食用的库。

在这个库中有一个很实用的方法,可以在滑动的时候暂停加载图片,可以很大的提升流畅度。如下:

rv_main.setOnScrollListener(new PauseOnScrollListener(ImageLoader.getInstance(), true, true));

后两个参数分别代表水平和垂直滑动的时候是否暂停。

不过当我使用了最新的RecyclerView时候似乎不能使用这个PauseOnScrollListener监听。后来查看源码发现这样一段

@Override
	public void onScrollStateChanged(AbsListView view, int scrollState) {
		switch (scrollState) {
			case OnScrollListener.SCROLL_STATE_IDLE:
				imageLoader.resume();
				break;
			case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
				if (pauseOnScroll) {
					imageLoader.pause();
				}
				break;
			case OnScrollListener.SCROLL_STATE_FLING:
				if (pauseOnFling) {
					imageLoader.pause();
				}
				break;
		}
		if (externalListener != null) {
			externalListener.onScrollStateChanged(view, scrollState);
		}
	}

很明显源码里面就是通过监听滑动状态来进行图片加载的控制的。而且我还在这里面找到了两个方法 pause() 和 resume() ,自然就是控制暂停和恢复图片加载的方法。于是我手动调用了这两个方法

rv_main.addOnScrollListener(new RecyclerView.OnScrollListener() {

                @Override
                public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                    super.onScrollStateChanged(recyclerView, newState);
                    switch (newState) {
                        case AbsListView.OnScrollListener.SCROLL_STATE_IDLE:
                            ImageLoader.getInstance().resume();
                            break;
                        case AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
                            ImageLoader.getInstance().pause();
                            break;
                        case AbsListView.OnScrollListener.SCROLL_STATE_FLING:
                            ImageLoader.getInstance().pause();
                            break;
                    }
                }
            });

 

© 著作权归作者所有

共有 人打赏支持
新宿豪雨
粉丝 0
博文 9
码字总数 2074
作品 0
长沙
Universal-image-loader图片加载开源框架基本使用

universal-imageloader加载图片的特点: 基本特点如下, 多线程下载图片,图片可以来源于网络,文件系统,项目文件夹assets中以及drawable中等 支持随意的配置ImageLoader,例如线程池,图片...

肖朝胜
2016/03/21
370
0
Android开源框架Universal-Image-Loader

多线程下载图片,图片可以来源于网络,文件系统,项目文件夹assets中以及drawable中等 支持随意的配置ImageLoader,例如线程池,图片下载器,内存缓存策略,硬盘缓存策略,图片显示选项以及其...

丁佳辉
2016/03/04
17
0
Universal-Image-Loader的使用

下载地址https://github.com/nostra13/Android-Universal-Image-Loader Android 1.5以上支持 每一个图片的加载和显示任务都运行在独立的线程中,除非这个图片缓存在内存中,这种情况下图片会...

厚德
2015/05/18
0
0
Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍

转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/26810303),请尊重他人的辛勤劳动成果,谢谢! 大家好!差不多两个来月没有写文章了,前段时间也是在...

程序袁_绪龙
2015/08/05
0
0
Android之史上最强ListView优化提案

Android之史上最强ListView优化提案 www.MyException.Cn 网友分享于:2015-08-04 浏览:0次 Android之史上最强ListView优化方案 在android开发中Listview是一个很重要的组件,它以列表的形式...

bengozhong
2016/10/12
11
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 到底谁是小公猫……

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子:分享Trivium的单曲《Throes Of Perdition》 《Throes Of Perdition》- Trivium 手机党少年们想听歌,请使劲儿戳(这里) @小鱼丁:...

小小编辑
21分钟前
13
1
基础选择器

注意:本教程参考自网上流传的李兴华老师的jquery开发框架视频,但是苦于没有相应的配套笔记,由我本人做了相应的整理. 本次学习的内容 学习jquery提供的各种选择器的使用,掌握了jquery选择...

江戸川
26分钟前
0
0
Spring中static变量不能@value注入的原因

今天本想使用@Value的方式使类中的变量获得yml文件中的配置值,然而一直失败,获得的一直为null。 类似于这样写的。 public class RedisShardedPool { private static ShardedJedisPool pool...

钟然千落
今天
2
0
CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部