2015-08-19 1 views
2

J'ai une image identifier par URL spécifique, pour obtenir cette image l'URL de la demande a besoin d'horodatage et de paramètres de signature (base de signature sur d'autres paramètres). L'URL sera modifiée à chaque demande du client car elle dépend de l'horodatage et de la signature. Donc, lorsque vous utilisez Glide pour charger l'image comme ci-dessous:Cache Wrapper lors du chargement Image

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

Le problème est, avec la même image mais les charges à plusieurs reprises et cache encore et (en raison de différentes URL)

Je veux construire une enveloppe de cache à surchargent equals méthode de cache de clé, mais je ne sais pas comment commencer avec Glide

Je suis très reconnaissant, si quelqu'un pouvait aider

Merci

Répondre

1

Enfin, je customed GlideUrl pour obtenir mon exigence

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

au lieu 'tempUrl.length() == 0' vous pouvez utiliser' TextUtils.isEmpty (tempUrl) ' – deadfish