SimpleCommand框架ImageLoader API详解(三)

 更新时间:2017年10月20日 09:58:39   作者:Danny_姜  
这篇文章主要为大家详细介绍了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框架

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

相关文章

  • Android ListView实现简单列表功能

    Android ListView实现简单列表功能

    这篇文章主要为大家详细介绍了Android ListView实现简单列表功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • Android RecyclerView实现悬浮吸顶、分隔线、到底提示效果

    Android RecyclerView实现悬浮吸顶、分隔线、到底提示效果

    这篇文章主要介绍了Android RecyclerView实现悬浮吸顶、分隔线、到底提示效果,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • Android数据库greenDAO配置与使用介绍

    Android数据库greenDAO配置与使用介绍

    这篇文章主要介绍了Android集成GreenDao数据库,使用数据库存储时候,一般都会使用一些第三方ORM框架,比如GreenDao,本文分几步给大家介绍Android集成GreenDao数据库的方法,需要的朋友可以参考下
    2023-03-03
  • Android编程实现ActionBar的home图标动画切换效果

    Android编程实现ActionBar的home图标动画切换效果

    这篇文章主要介绍了Android编程实现ActionBar的home图标动画切换效果,涉及Android布局、样式、Activity及菜单相关操作技巧,需要的朋友可以参考下
    2017-01-01
  • 解决Android加壳过程中mprotect调用失败的原因分析

    解决Android加壳过程中mprotect调用失败的原因分析

    本文探讨的主要内容是mprotect调用失败的根本原因,以及在加壳实现中的解决方案,通过本文的阐述,一方面能够帮助遇到同类问题的小伙伴解决心中的疑惑,另一方面能够给大家提供可落地的实现方案,需要的朋友可以参考下
    2022-01-01
  • Android弹出窗口实现方法

    Android弹出窗口实现方法

    这篇文章主要介绍了Android弹出窗口实现方法,涉及Android TextView及鼠标事件的响应相关技巧,需要的朋友可以参考下
    2016-01-01
  • Android实现帧动画的两种方式

    Android实现帧动画的两种方式

    帧动画(Frame Animation)是一种在一定时间内按顺序播放一系列图像帧(每一帧都是一个单独的图像),从而产生连续运动或变化的动画效果,本文给大家介绍了Android实现帧动画的两种方式,需要的朋友可以参考下
    2024-02-02
  • Android手势密码view学习笔记(一)

    Android手势密码view学习笔记(一)

    这篇文章主要为大家详细介绍了Android手势密码view的学习笔记,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • Android序列化XML数据

    Android序列化XML数据

    有时候一些项目中需要传递一些XML格式的数据,如何把一个对象序列化为XML格式,本文就讲讲Android序列化XML数据的方法
    2013-11-11
  • Android实现EditText控件禁止输入内容的方法(附测试demo)

    Android实现EditText控件禁止输入内容的方法(附测试demo)

    这篇文章主要介绍了Android实现EditText控件禁止输入内容的方法,涉及Android针对EditText控件属性设置的相关技巧,需要的朋友可以参考下
    2015-12-12

最新评论