Glide 4.0 StringSignature 找不到類

一、起因

舊版本Glide.signature()方法形參支持使用StringSignature。但在Glide 4.0里面這個(gè)方法不僅被移到RequestOptions中,而且形參改為Key

二、解決辦法

2.1 Key

不過(guò)Key是一個(gè)接口,需要實(shí)現(xiàn)抽象方法

void updateDiskCacheKey(MessageDigest messageDigest);

2.2 ObjectKey

Key還有一個(gè)使用相對(duì)方便的子類ObjectKey,構(gòu)造方法以Object為參數(shù),下面是實(shí)際用法:

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

代碼中創(chuàng)建了一個(gè)ObjectKey實(shí)例,并把當(dāng)前時(shí)間戳整形值作為參數(shù)。

三、源碼

順便貼出KeyObjectKey的源碼,請(qǐng)自行查閱:

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,234評(píng)論 25 708
  • 斜支在屋角的一管青竹
    蓮子風(fēng)父抱石人閱讀 302評(píng)論 0 0
  • 被人一夸就沾沾自喜,別人只是禮貌你卻當(dāng)真了。有時(shí)候會(huì)產(chǎn)生類似的想法,在覺(jué)得自己事情沒(méi)有做好的時(shí)候這種情緒尤其明顯。...
    酸酸酸酸酸奶閱讀 298評(píng)論 0 0
  • 看到朋友潘德榮教授發(fā)自德國(guó)的圖片,心中為之欣喜。老兄雖已年過(guò)花甲,不僅身體康健,而且思維敏捷,每年都有論文...
    丁懷超閱讀 267評(píng)論 0 0
  • 卻說(shuō)井底國(guó)的蛙兒某聽(tīng)了東海國(guó)老鱉的一番異域奇聞后,驚羨得雙目圓睜。當(dāng)日開(kāi)飯時(shí)咕咕咕地對(duì)蛙老爹蛙老媽使氣:外面的世界...
    錯(cuò)得在理閱讀 213評(píng)論 0 0

友情鏈接更多精彩內(nèi)容