SimpleCommand框架ImageLoader API详解(三)
时间:2022-07-28
本文章向大家介绍SimpleCommand框架ImageLoader API详解(三),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
ImageLoader API 详细介绍,具体内容如下
在ImageLoader中有以下几个不同的构造器:
/**
* 注意: 次构造器不支持下载进度提示功能
* @param context
* @param withCache 是否支持缓存
* false--不带缓存
* true--支持缓存功能,默认缓存路径在外置存储缓冲目录中的picasso-big-cache文件夹中
*/
public ImageLoader(Context context, boolean withCache) {
this(context, null, withCache);
}
/**
* 支持下载进度提示,以及设置缓存路径
* @param context
* @param listener 下载进度监听器
* @param cachePath 缓存路径字符串
*/
public ImageLoader(Context context, ProgressListener listener, String cachePath) {
// TODO extend to support multiple libraries as Glide
// TODO must be initialized and kept as an member instance to avoid losing cache
Picasso.Builder builder = setupLoaderClientWithCachePath(context, listener, cachePath);
setupListener(builder);
picasso = builder.build();
picasso.setIndicatorsEnabled(BuildConfig.DEBUG);
picasso.setLoggingEnabled(BuildConfig.DEBUG);
}
/**
* 支持下载进度提示,以及设置缓存路径为默认路径picasso-big-cache
* @param context
* @param listener 下载进度监听器
* @param withCache 是否支持缓存
*/
public ImageLoader(Context context, ProgressListener listener, boolean withCache) {
// TODO extend to support multiple libraries as Glide
// TODO must be initialized and kept as an member instance to avoid losing cache
Picasso.Builder builder = setupLoaderClient(context, listener, withCache);
setupListener(builder);
picasso = builder.build();
picasso.setIndicatorsEnabled(BuildConfig.DEBUG);
picasso.setLoggingEnabled(BuildConfig.DEBUG);
}
public void shutdown() {
if (picasso == null) return;
Logger.d(Logger.TAG, "Image loader has been shutdown");
picasso.shutdown();
callback = null;
}
将ImageLoader停止,一般在Activity停止,或者任务结束时调用此方法将其关闭
public ImageLoader cancelRequest(ImageView imageView) {
picasso.cancelRequest(imageView);
return this;
}
取消之前显示到ImageView上的请求
public ImageLoader load(final int resourceId) {
cleanResources();
this.imageResourceId = resourceId;
return this;
}
public ImageLoader load(final String imageUri) {
cleanResources();
this.imageUri = imageUri;
return this;
}
分别加载本地drawable文件夹下的图片,以及网络图片
public ImageLoader withPlaceholder(final int placeholder) {
this.placeholder = placeholder;
return this;
}
设置ImageLoader下载图片时的预览图
public ImageLoader withErrorImage(final int errorImage) {
this.errorImage = errorImage;
return this;
}
下载图片失败时显示的图片
public ImageLoader withTag(final String tag) {
this.tag = tag;
return this;
}
public void pause(final String tag) {
if (picasso == null) return;
picasso.pauseTag(tag);
}
public void resume(final String tag) {
if (picasso == null) return;
picasso.resumeTag(tag);
}
以上三个方法依次是
1 下载图片时添加标签tag 2 暂停tag标签的下载任务 3 resume tag标签的下载任务
public ImageLoader withCallback(final Callback callback) {
this.callback = callback;
return this;
}
给ImageLoader设置下载完成的回调,包含onSuccess和onFailed方法
public ImageLoader fit() {
this.fit = true;
return this;
}
public ImageLoader centerCrop() {
this.centerCrop = true;
return this;
}
public ImageLoader centerInside() {
this.centerInside = true;
return this;
}
public ImageLoader resize(final int widthResId, final int heightResId) {
this.widthResId = widthResId;
this.heigthResId = heightResId;
return this;
}
分别设置Picasso下载图片时的相应属性, 可以参考ImageView的scaleType属性
public void into(final ImageView imageView) {
run(imageView);
}
into方法调用内部run方法,并启动下载任务。 此方法需要在以上所有的API之后调用。
框架github地址: SimpleCommand框架
以上就是本文的全部内容,希望对大家的学习有所帮助。
- 【Go 语言社区】go 学习中遇到一些语法问题
- Elasticsearch全文检索实战小结——复盘我带的第二个项目
- 当12C PDB遇上JDBC (r10笔记第59天)
- 微信公众平台开发获取用户基本信息--转
- Elasticsearch检索分类深入详解—基础篇
- 通过Java程序测试数据库连接信息 (r10笔记第64天)
- GoldenGate安装简记(r10笔记第78天)
- 【Go 语言社区】各种变量的声明
- 【Go 语言社区】Golang 高效字符串拼接
- 实战 | Elasticsearch实现类Google高级检索
- Golang中time包用法--转
- 干货 | Elasticsearch 集群健康值红色终极解决方案
- Go语言interface的value.(type)使用小技巧-转
- 干货 | Elasticsearch5.X Mapping万能模板
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android之RecycleView实现指定范围的拖动效果
- Android 通过代码安装 APK的方法详解
- Android ListView实现无限循环滚动
- ignite:一个漂亮的多用户SS/SSR面板
- FreshRSS:开源免费的RSS阅读器
- 使用snap快速安装RocketChat你的聊天服务器
- CuteOne:一款基于Python3的OneDrive多网盘挂载程序,带会员/同步等功能
- Baidu Sitemap Generator在PHP7无法生成XML的解决方法
- MFC实现的Socket通信
- 128-在线翻译
- C语言CGI编程二 - 编写cmd后门
- android 获取视频第一帧作为缩略图的方法
- Flutter利用注解生成可自定义的路由的实现
- Android实现随意拖动View效果的实例代码
- Kotlin的枚举与异常示例详解