Android Glisse: Comment faire pour télécharger et de mettre en cache des bitmaps?
Je suis à l'aide de Glisse pour télécharger et mettre les images en cache sur Android. Tout fonctionne bien sauf le fait que je ne veux pas charger les images directement dans le ImageView
, je ne veux pas avoir l'animation de fondu, ni l'image des espaces réservés.
Tout ce que je veux, c'est créer une méthode globale qui va m'aider à télécharger l'image de tous les plus de l'application.
public class MyApp extends Application {
public static void downloadImage(String url, final OnImageLoadedCallback callback) {
//And how to implement the listener ?
RequestListener<String, Bitmap> requestListener = new RequestListener<String, Bitmap() {
@Override
public boolean onException(Exception exc, String string, Target<Bitmap> target, boolean isFirstResource) {
callback.onDone(null);
return false;
}
@Override
public boolean onResourceReady(Bitmap bitmap, String string, Target<Bitmap> target, boolean isFromMemoryCache, boolean isFirstResource) {
callback.onDone(bitmap);
return false;
}
};
Glide.with(context)
.load(url)
.asBitmap()
.dontAnimate()
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.listener(requestListener);
}
}
Le problème est que je ne sais pas comment la mettre à l'auditeur. RequestListener
n'est pas appelée à tous.
Essayez de référence à ceci: lien.
OriginalL'auteur Zbarcea Christian | 2014-12-24
Vous devez vous connecter pour publier un commentaire.
Charges dans le glissement de ne pas commencer jusqu'à ce que vous effectuez un appel à en. Le RequestListener interface observe les demandes, mais n'est pas habituellement pour la manipulation des résultats. Au lieu d'utiliser RequestListener, envisager d'avoir votre rappel de mettre en œuvre la Cible de l'interface et de le transmettre à l'aide de en.
Sinon, vous pouvez simplement étendre SimpleTarget et de le transmettre à chaque demande de la même manière que vous essayez d'utiliser RequestListener:
Vous voulez donner une largeur et une hauteur permettant de finesse sous-échantillonner et de transformer des images de façon appropriée. Vous pouvez également exécuter dans les questions d'annulation si vous êtes l'affichage de ces images en vues, dans ce cas, je recommanderais fortement de prise de vue disponibles pour votre installation de chargement de l'API et en passant à la vue de en qui va gérer le dimensionnement et d'annulation pour vous.
preload()
au lieu deinto()
si vous n'avez pas besoin de l'image immédiatement ou si vous préférez utiliser unRequestListener
pour le rappel.OriginalL'auteur Sam Judd
Je utiliser Glide 3.7.0 et de télécharger des images de cette façon:
il est important de noter - il exécute asyncroniously
Quand j'ai besoin de montrer des images mises en cache, j'utilise la même url, et
DiskCacheStrategy.SOURCE
:OriginalL'auteur Nik Kober