我有一个通过特定URL识别的图像,为了获得此图像请求URL需要时间戳和签名参数(签名基于其他参数)。 每次客户端请求时URL都会更改,因为它取决于时间戳和签名。 所以当使用Glide加载图像时如下:
Glide.with(mContext).load(url).into(imageView);
问题是,使用相同的图像,但它加载了很多次并反复缓存(因为不同的URL)
我想构建一个缓存包装器来覆盖equals Cache键的方法,但我不知道如何从Glide开始
我非常感激,如果有人可以提供帮助
由于
答案 0 :(得分:2)
最后我定制了GlideUrl以获得我的要求
public class GlideUrlKey extends GlideUrl {
public GlideUrlKey(URL url) { super(url); }
public GlideUrlKey(String url) { super(url); }
public GlideUrlKey(URL url, Headers headers) { super(url, headers); }
public GlideUrlKey(String url, Headers headers) { super(url, headers); }
@Override public String getCacheKey() {
String url = toStringUrl();
if (url.contains("fl_id") && url.contains("fl_rel")) {
String tempUrl = url.substring(0, url.lastIndexOf("&data%5Bsign%5D"));
if (tempUrl.length() == 0) {
tempUrl = url.substring(0, url.lastIndexOf("data[sign]") - 1);
if (tempUrl.length() == 0) {
tempUrl = url.substring(0, url.lastIndexOf("fl_rel"));
}
}
return tempUrl;
} else {
return url;
}
}
}