Listener

ImageLoadingListener.java
图片加载各种时刻的回调接口,可在图片加载的某些点做监听。
包括开始加载(onLoadingStarted)、加载失败(onLoadingFailed)、加载成功(onLoadingComplete)、取消加载(onLoadingCancelled)四个回调函数。

SimpleImageLoadingListener.java
实现ImageLoadingListener接口,不过各个函数都是空实现,表示不在 Image 加载过程中做任何回调监听。
ImageLoader.displayImage(…)函数中当入参listener为空时的默认值

ImageLoadingProgressListener.java
Image 加载进度的回调接口。其中抽象函数
void onProgressUpdate(String imageUri, View view, int current, int total)
会在获取图片存储到文件系统时被回调。其中total表示图片总大小,为网络请求结果Response Header中content-length字段,如果不存在则为 -1。

PauseOnScrollListener.java
可在 View 滚动过程中暂停图片加载的 Listener,实现了 OnScrollListener 接口。
它的好处是防止滚动中不必要的图片加载,比如快速滚动不希望滚动中的图片加载。在 ListView 或 GridView 中 item 加载图片最好使用它,简单的一行代码:
gridView.setOnScrollListener(new PauseOnScrollListener(ImageLoader.getInstance(), false, true));
主要的成员变量:
pauseOnScroll 触摸滑动(手指依然在屏幕上)过程中是否暂停图片加载。
pauseOnFling 甩指滚动(手指已离开屏幕)过程中是否暂停图片加载。
externalListener 自定义的 OnScrollListener 接口,适用于 View 原来就有自定义 OnScrollListener 情况设置。
实现原理:
重写onScrollStateChanged(…)函数判断不同的状态下暂停或继续图片加载。
OnScrollListener.SCROLL_STATE_IDLE表示 View 处于空闲状态,没有在滚动,这时候会加载图片。
OnScrollListener.SCROLL_STATE_TOUCH_SCROLL表示 View 处于触摸滑动状态,手指依然在屏幕上,通过pauseOnScroll变量确定是否需要暂停图片加载。这种时候大都属于慢速滚动浏览状态,所以建议继续图片加载。
OnScrollListener.SCROLL_STATE_FLING表示 View 处于甩指滚动状态,手指已离开屏幕,通过pauseOnFling变量确定是否需要暂停图片加载。这种时候大都属于快速滚动状态,所以建议暂停图片加载以节省资源。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,839评论 25 709
  • 写在前面,UIL这个图片加载框架在去年的时候,作者就已经宣布因为时间关系,停止维护了!以下为作者原话: Proje...
    宝塔山上的猫阅读 3,244评论 0 3
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,142评论 18 399
  • 幸福是需要修出来的~每天进步1%~幸福实修08班~13-罗洁-余姚# 20170825(68/99) 【幸福三朵玫...
    幸福实修08班罗洁阅读 1,514评论 0 3
  • 说好了天凉的时候去踏秋,手拉着手,一同去 现在,天凉了…… 约好的红叶谷纳秋实,手拉着手,说好的 如今,叶红了……...
    劉海峰阅读 734评论 0 0