源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

SimpleCommand框架ImageLoader API详解(三)

  • 时间:2021-07-24 17:59 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要: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地址: [url=https://github.com/McoyJiang/SimpleCommand]SimpleCommand框架[/url] 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部