您现在的位置是:主页 > news > 广西庆海建设发展有限公司网站/网站设计公司北京
广西庆海建设发展有限公司网站/网站设计公司北京
admin2025/6/23 17:14:38【news】
简介广西庆海建设发展有限公司网站,网站设计公司北京,国外红色企业网站,我的世界做外国壁纸网站一、起因 旧版本Glide中.signature()方法形参支持使用StringSignature。但在Glide 4.0里面这个方法不仅被移到RequestOptions中,而且形参改为Key。 二、解决办法 2.1 Key 不过Key是一个接口,需要实现抽象方法 void updateDiskCacheKey(MessageDiges…
广西庆海建设发展有限公司网站,网站设计公司北京,国外红色企业网站,我的世界做外国壁纸网站一、起因
旧版本Glide中.signature()方法形参支持使用StringSignature。但在Glide 4.0里面这个方法不仅被移到RequestOptions中,而且形参改为Key。
二、解决办法
2.1 Key
不过Key是一个接口,需要实现抽象方法
void updateDiskCacheKey(MessageDiges…
一、起因
旧版本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
实例,并把当前时间戳整形值作为参数。
三、源码
顺便贴出Key
和ObjectKey
的源码,请自行查阅:
3.1 Key
public interface Key {String STRING_CHARSET_NAME = "UTF-8";Charset CHARSET = Charset.forName(STRING_CHARSET_NAME);void updateDiskCacheKey(MessageDigest messageDigest);@Overrideboolean equals(Object o);@Overrideint hashCode();
}
3.2 ObjectKey
public final class ObjectKey implements Key {private final Object object;public ObjectKey(Object object) {this.object = Preconditions.checkNotNull(object);}@Overridepublic String toString() {return "ObjectKey{"+ "object=" + object+ '}';}@Overridepublic boolean equals(Object o) {if (o instanceof ObjectKey) {ObjectKey other = (ObjectKey) o;return object.equals(other.object);}return false;}@Overridepublic int hashCode() {return object.hashCode();}// Charset CHARSET = Charset.forName("UTF-8");@Overridepublic void updateDiskCacheKey(MessageDigest messageDigest) {messageDigest.update(object.toString().getBytes(CHARSET));}
}
四、参考链接
StringSignature class not found #2692
最终解决方案
RequestOptions userAvatarOptions = new RequestOptions()
// .placeholder(R.drawable.def_avatar)
// .error(R.drawable.def_avatar).signature(new ObjectKey(System.currentTimeMillis()));Glide.with(ProfileActivity.this).applyDefaultRequestOptions(userAvatarOptions).load(iamgePath).apply(RequestOptions.bitmapTransform(new CircleCrop())).into(mIvApHeader);