2015-08-19 3 views
2

У меня есть изображение, идентифицируемое по определенному URL-адресу, чтобы получить это изображение, требуемый URL-адрес запроса и параметры подписи (база подписи для других параметров). URL-адрес будет изменяться при каждом запросе клиента, поскольку он зависит от отметки времени и подписи. Так при использовании Glide, чтобы загрузить изображение, как показано ниже:Cache Wrapper при загрузке Изображение

Glide.with(mContext).load(url).into(imageView); 

Проблема в том, с тем же изображением, но он загружает много раз и кэш снова и снова (из-за различных URL)

Я хочу построить кэш обертка для переопределения равен метод Cache Key, но я не знаю, как начать с Glide

Я очень благодарен, если кто-то может помочь

Благодарности

ответ

1

Наконец я привышные 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; 
     } 
    } 
} 
+0

вместо 'tempUrl.length() == 0 'можно использовать' TextUtils.isEmpty (tempUrl) ' – deadfish

Смежные вопросы