ImageLoader 滑动暂停加载
ImageLoader 滑动暂停加载
新宿豪雨 发表于2年前
ImageLoader 滑动暂停加载
  • 发表于 2年前
  • 阅读 9
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

    现在还是有很多人在用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;
                    }
                }
            });

 

标签: Android
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 9
码字总数 2074
×
新宿豪雨
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: