文档章节

ImageLoader 滑动暂停加载

新宿豪雨
 新宿豪雨
发布于 2016/07/22 18:22
字数 342
阅读 19
收藏 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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Minifilter的动态安装、加载及卸载

MINIFILTER框架的文件系统过滤驱动,无法使用的CreateService和OpenService进行动态加载。 看了一下,使用Inf文件安装Minifilter驱动的方式是在注册表驱动服务项下比传统驱动多创建了Instanc...

simpower
27分钟前
3
0
idea新建springCloud项目(6)- Config Server使用

1.在IDEA新建springCloud项目-Config Server 修改版本,和之前建的eureka项目版本一致,修改完记得刷新: 删除掉不需要的文件: 2.把Config S 服务注册到eureka上去,配置git地址,启动项目 ...

monroeCode
32分钟前
4
0
大数据可视化项目开发总纲

第1章 开发文档总纲 1.1 开发工具清单 名称 版本 备注 Pentaho-bi server pentaho-server-ce-7.1 Pentaho Cde为其内置工具 Pentaho-prd pentaho-prd-ce-7.1 Pentaho Report Designer报表工具...

ZhangLG
32分钟前
4
0
pip安装超时问题

pip3 install --default-timeout=100 tensorflow 设置为100秒 参考: User Guide How to solve ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443) with pip?......

亚林瓜子
34分钟前
2
0
fragment 旋转时保持当前实例

设备旋转时保存Fragment的交互状态: setRetainInstance(true);

zdglf
37分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部