文档章节

ImageLoader 滑动暂停加载

新宿豪雨
 新宿豪雨
发布于 2016/07/22 18:22
字数 342
阅读 24
收藏 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
长沙
私信 提问
Android开源框架Universal-Image-Loader

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

丁佳辉
2016/03/04
17
0
Universal-image-loader图片加载开源框架基本使用

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

肖朝胜
2016/03/21
370
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

没有更多内容

加载失败,请刷新页面

加载更多

大数据教程(11.9)hive操作基础知识

上一篇博客分享了hive的简介和初体验,本节博主将继续分享一些hive的操作的基础知识。 DDL操作 (1)创建表 #建表语法CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name ...

em_aaron
今天
0
0
OSChina 周四乱弹 —— 我家猫真会后空翻

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @我没有抓狂 :#今天听这个# 我艇牛逼,百听不厌,太好听辣 分享 Led Zeppelin 的歌曲《Stairway To Heaven》 《Stairway To Heaven》- Led Z...

小小编辑
今天
1
0
node调用dll

先安装python2.7 安装node-gyp cnpm install node-gyp -g 新建一个Electron-vue项目(案例用Electron-vue) vue init simulatedgreg/electron-vue my-project 安装electron-rebuild cnpm ins......

Chason-洪
今天
3
0
scala学习(一)

学习Spark之前需要学习Scala。 参考学习的书籍:快学Scala

柠檬果过
今天
3
0
通俗易懂解释网络工程中的技术,如STP,HSRP等

导读 在面试时,比如被问到HSRP的主备切换时间时多久,STP几个状态的停留时间,自己知道有这些东西,但在工作中不会经常用到,就老是记不住,觉得可能还是自己基础不够牢固,知识掌握不够全面...

问题终结者
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部