參考資料:https://muyangmin.github.io/glide-docs-cn/doc/caching.html
業務需求:
列表逐個輪訓獲取視頻流中第一幀的截圖,雖然每次返回的圖片URL都是不同的,但是圖像沒有改變.導致每次刷新都沒有使用到glide緩存機制,出現重複加載浪費資源的情況
分析:
首先glide源碼4.8.0版本中,默認緩存key是通過model,signature,widthd,height,transformations等屬性共同作用的
model其實就是我們傳入的url字符串
那麼可以從model這個變量入手,改造model,使其滿足我們的業務需要
import com.bumptech.glide.load.model.GlideUrl;
public class MyGlideUrl extends GlideUrl {
private String eventId;
public MyGlideUrl(String url,String eventId) {
super(url);
this.eventId = eventId;
}
@Override
public String getCacheKey() {
return eventId;
}
}
封裝自己的url類,並根據業務需要重寫getCacheKey()方法
MyGlideUrl myGlideUrl = new MyGlideUrl(picUrl,event.getId());
Glide.with(cext)
.load(myGlideUrl)
.apply(requestOptions)
.into(holder.eventIv);