2016-01-22 5 views
7

Ich habe schon eine ganze Weile daran gearbeitet und es ist Zeit eine SO Frage zu stellen.glide force load cached image, egal welche resolution

Find and load cached Image in Glide sieht so aus, aber nach den Links und der Diskussion auf Glides Seite funktioniert es nicht für mich.

Auf Aktivität A, lade ich das Bild über eine URL in einem ImageView.

Danach gehe ich offline mit dem Gerät. Dann öffne ich Aktivität B, wo ich die gleiche URL in eine andere ImageView, die andere Dimensionen hat, laden. Es funktioniert nur, wenn die Breite und Höhe der ImageView auf Aktivität A entsprechen, oder Sie geben override() mit der Breite und Höhe der ersten ImageView. Aber Aktivität B weiß nichts darüber.

Ich tue dies in Aktivität A:

Glide.with(context) 
    .load(url) 
    .diskCacheStrategy(DiskCacheStrategy.ALL) 
    .placeholder(R.drawable.placeholder) 
    .crossFade() 
    .into(image); 

und in Tätigkeit BI tun:

Glide.with(mContext) 
    .load(url) 
    .override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL) 
    .into(imageView); 

habe ich versucht, die oben, weil ich die Platte Strategie dachte das Original speichern, so dass es wird das als laden. Ergebnis ist, dass kein Bild geladen ist.

Ich denke daran, nach Picasso zurückzukehren, weil ich denke, dass das dort möglich ist, aber ich gebe Stackoverflow noch einen Versuch.

ich sofort in ein Kopfgeld werfen würde, wenn das möglich war ...

Antwort

9

können Sie versuchen, den folgenden Code für Aktivität B?

Glide.with(mContext) 
    .load(url) 
    .diskCacheStrategy(DiskCacheStrategy.SOURCE) 
    .into(imageView); 
+1

WTH, das scheint zu funktionieren! Aber warum? Ich habe zwar die Cache-Strategie nur beim Download angewendet/welche Bildauflösung ist gespeichert, welche nicht geladen ist. Können Sie erklären? – Boy

+0

DiskCacheStrategy.SOURCE speichert die ursprünglichen Daten im Cache. – ap6491

+0

Ich verstehe, dass es das beim Herunterladen tun würde. Aber ich habe keine Internetverbindung, wenn ich diesen Code ausführe, daher ist das Caching nicht anwendbar: Es gibt nichts zum Herunterladen. Oder versucht es, nur das Original zu speichern, das aus Mangel an Internet nicht funktioniert, und ändert dann das Original (bereits gespeichert) auf die Breite und Höhe des ImageView? – Boy