美文网首页Android进阶
Glide 4.0 StringSignature 找不到类

Glide 4.0 StringSignature 找不到类

作者: phantomvk | 来源:发表于2018-02-06 13:52 被阅读1346次

一、起因

旧版本Glide.signature()方法形参支持使用StringSignature。但在Glide 4.0里面这个方法不仅被移到RequestOptions中,而且形参改为Key

二、解决办法

2.1 Key

不过Key是一个接口,需要实现抽象方法

void updateDiskCacheKey(MessageDigest messageDigest);

2.2 ObjectKey

Key还有一个使用相对方便的子类ObjectKey,构造方法以Object为参数,下面是实际用法:

public static RequestOptions userAvatarOptions = new RequestOptions()
            .placeholder(R.drawable.def_avatar)
            .error(R.drawable.def_avatar)
            .signature(new ObjectKey(System.currentTimeMillis()))
            .encodeQuality(70);

代码中创建了一个ObjectKey实例,并把当前时间戳整形值作为参数。

三、源码

顺便贴出KeyObjectKey的源码,请自行查阅:

3.1 Key

public interface Key {
  String STRING_CHARSET_NAME = "UTF-8";
  Charset CHARSET = Charset.forName(STRING_CHARSET_NAME);

  void updateDiskCacheKey(MessageDigest messageDigest);

  @Override
  boolean equals(Object o);

  @Override
  int hashCode();
}

3.2 ObjectKey

public final class ObjectKey implements Key {
  private final Object object;

  public ObjectKey(Object object) {
    this.object = Preconditions.checkNotNull(object);
  }

  @Override
  public String toString() {
    return "ObjectKey{"
        + "object=" + object
        + '}';
  }

  @Override
  public boolean equals(Object o) {
    if (o instanceof ObjectKey) {
      ObjectKey other = (ObjectKey) o;
      return object.equals(other.object);
    }
    return false;
  }

  @Override
  public int hashCode() {
    return object.hashCode();
  }

  // Charset CHARSET = Charset.forName("UTF-8");
  @Override
  public void updateDiskCacheKey(MessageDigest messageDigest) {
    messageDigest.update(object.toString().getBytes(CHARSET));
  }
}

四、参考链接

StringSignature class not found #2692

相关文章

  • Glide 4.0 StringSignature 找不到类

    一、起因 旧版本Glide中.signature()方法形参支持使用StringSignature。但在Glide...

  • Kotlin项目小结

    项目地址(github) 1、Glide4.0+需要继承类AppGlideModule,这个类必须是java,不能...

  • Android - Glide4.0+ 简单使用

    由于项目使用到了Glide4.0+强大的图片加载库,深入理解一下Glide4.0+。Glide4.0+地址 一、引...

  • Glide 4.0学习笔记

    Glide 4.0使用 Glide v4 使用 注解处理器 (Annotation Processor) 来生成出...

  • Glide4.10.0加载图片进度监听

    参考:Glide —— 替换资源加载组件Android Glide4.0+图片加载进度监听 主要的6文件:Prog...

  • Glide4.0的用法

    前言 Glide 4相对于Glide 3改动非常大,尤其是aip的调用。 Glide4.0的用法 总结一下Glid...

  • Glide 4.0 以上无法生成 GlideApp

    Glide 4.0 以上的版本将很多的 API 都从 Glide 主线这个入口及后续的调用剥离出来了,需要用 Gl...

  • Glide.override()方法找不到

    自Glide4.0之后,对原来的链式调用进行了改版。 原写法: 这种链式调用改版为: 以上是Glide的所有函数,...

  • Glide4.5源码分析一

    这篇摸清一个问题:Glide从网上下载图片的流程.Glide4.0加入了Generated API,如此现在有两种...

  • BitmapUtils

    2019年8月5号, 新增显示一寸照为原型头像时人脸显示不全问题: Glide 4.0以上使用 Glide 3.0...

网友评论

    本文标题:Glide 4.0 StringSignature 找不到类

    本文链接:https://www.haomeiwen.com/subject/jljgzxtx.html