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自定义StepView仿外卖配送进度

    Android自定义StepView仿外卖配送进度

    这篇文章主要为大家详细介绍了Android自定义StepView仿外卖配送进度,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • Android Handler的postDelayed()关闭的方法及遇到问题

    Android Handler的postDelayed()关闭的方法及遇到问题

    这篇文章主要介绍了Android Handler的postDelayed()关闭的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Android计时器chronometer使用实例讲解

    Android计时器chronometer使用实例讲解

    这篇文章主要为大家详细介绍了Android计时器chronometer使用实例,介绍了Android计时器chronometer基本使用方法,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • Android实现图片预览与保存功能

    Android实现图片预览与保存功能

    在App开发中,通常为了省流提高加载速度提升用户体验我们通常在列表中或新闻中的插图都是以缩略图压缩过的图片来进行展示,当用户点击图片时我们再去加载真正像素的大图让用户预览。本文将利用Flutter实现这一功能,需要的可以参考一下
    2022-04-04
  • Android 利用三阶贝塞尔曲线绘制运动轨迹的示例

    Android 利用三阶贝塞尔曲线绘制运动轨迹的示例

    本篇文章主要介绍了Android 利用三阶贝塞尔曲线绘制运动轨迹的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Android自定义View设定到FrameLayout布局中实现多组件显示的方法 分享

    Android自定义View设定到FrameLayout布局中实现多组件显示的方法 分享

    Android自定义View设定到FrameLayout布局中实现多组件显示的方法 分享,需要的朋友可以参考一下
    2013-05-05
  • Flutter中灰屏问题的原因及解决方法

    Flutter中灰屏问题的原因及解决方法

    生产中的 flutter 应用程序中的灰屏是一种通用占位符,当框架遇到问题无法渲染预期用户界面时就会显示,所以基本上是出现问题时的后备指示器,本文给大家介绍了Flutter中灰屏问题的原因及解决方法,需要的朋友可以参考下
    2024-06-06
  • WebView的几个常见功能使用方法

    WebView的几个常见功能使用方法

    本篇文章介绍了WebView的几个常见功能,WebView的功能很强大,感兴趣的小伙伴们可以了解一下。
    2016-11-11
  • Android调用手机摄像头的方法

    Android调用手机摄像头的方法

    这篇文章主要为大家详细介绍了Android调用手机摄像头的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Android 自绘控件

    Android 自绘控件

    Android中自定义控件分为三种:1.自绘控件 2.组合控件 3.继承控件。本篇介绍下自绘控件。下面跟着小编一起来看下吧
    2017-02-02

最新评论