前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SimpleCommand框架ImageLoader API详解(三)

SimpleCommand框架ImageLoader API详解(三)

作者头像
砸漏
发布2020-10-23 23:19:16
3070
发布2020-10-23 23:19:16
举报
文章被收录于专栏:恩蓝脚本恩蓝脚本

ImageLoader API 详细介绍,具体内容如下

在ImageLoader中有以下几个不同的构造器:

代码语言:javascript
复制
/**
  * 注意: 次构造器不支持下载进度提示功能
  * @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);
 }
代码语言:javascript
复制
public void shutdown() {
  if (picasso == null) return;

  Logger.d(Logger.TAG, "Image loader has been shutdown");
  picasso.shutdown();
  callback = null;
 }

将ImageLoader停止,一般在Activity停止,或者任务结束时调用此方法将其关闭

代码语言:javascript
复制
public ImageLoader cancelRequest(ImageView imageView) {
  picasso.cancelRequest(imageView);
  return this;
 }

取消之前显示到ImageView上的请求

代码语言:javascript
复制
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文件夹下的图片,以及网络图片

代码语言:javascript
复制
public ImageLoader withPlaceholder(final int placeholder) {
  this.placeholder = placeholder;
  return this;
 }

设置ImageLoader下载图片时的预览图

代码语言:javascript
复制
public ImageLoader withErrorImage(final int errorImage) {
  this.errorImage = errorImage;
  return this;
 }

下载图片失败时显示的图片

代码语言:javascript
复制
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标签的下载任务

代码语言:javascript
复制
public ImageLoader withCallback(final Callback callback) {
  this.callback = callback;
  return this;
 }

给ImageLoader设置下载完成的回调,包含onSuccess和onFailed方法

代码语言:javascript
复制
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属性

代码语言:javascript
复制
public void into(final ImageView imageView) {
  run(imageView);
 }

into方法调用内部run方法,并启动下载任务。 此方法需要在以上所有的API之后调用。

框架github地址: SimpleCommand框架

以上就是本文的全部内容,希望对大家的学习有所帮助。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档