Utiliser une vignette comme un espace réservé pour Picasso
De l'UX point de vue, il sera bon de montrer à l'utilisateur une miniature de la première jusqu'à ce que l'image réelle se termine le chargement, puis à le montrer à lui, mais Picasso utilise uniquement un fichier de ressources que la place de titulaire comme:
Picasso.with(context)
.load(url)
.placeholder(R.drawable.user_placeholder)
.into(imageView);
Alors, comment puis-je utiliser une URL de vignette de la réservation? et si je dois utiliser Picasso deux fois, alors comment?
Un problème est déjà ouvert sur Picasso page github à cette demande, mais il semble qu'il ne sera pas ajouté à Picasso comme par JakeWharton. Alors, comment pourrions-nous faire avec ce qui est disponible dans la main?
Ce que sur la définition de l'ImageView la vignette manuellement. Vous n'utilisez pas l'espace réservé à l'option de Picasso. Ensuite, vous avez la vignette jusqu'à leur chargement.
Qu'entendez-vous par la main?
Qu'entendez-vous par la main?
OriginalL'auteur AbdelHady | 2014-12-04
Vous devez vous connecter pour publier un commentaire.
Grâce à raveN ici & les commentaires sur le demande d'origine sur github, enfin j'ai une solution de travail:
L'astuce ici est d'obtenir le drawable de l'imageView (qui est la vignette) après le premier appel & passer comme un espace réservé à l'appel de la deuxième
-- mise à jour --
J'ai fait un post de blog décrivant l'ensemble du scénario
OriginalL'auteur AbdelHady
Vous pourriez écrire un simple helper qui appelle Picasso deux fois (comme vous l'avez mentionné).
Je n'ai pas testé, mais ça devrait aller comme
Il ya un couple de façons différentes pour obtenir votre Picasso appelé deux fois. Une méthode que je pouvais penser (encore une fois, pas testé) est
Edit: Tout ce que je sais, c'est que Picasso offre ce mécanisme de rappel. Je l'utilise dans mon application pour masquer une Barre de progression qui s'affiche jusqu'à ce que l'image est chargée. Je vais le cacher dans la réussite ou l'erreur rappels - de sorte que vous aurez la possibilité d'être averti lorsque le chargement des images est fait. Ensuite, vous pouvez simplement appeler de nouveau. J'espère que l'approche ci-dessus fonctionne.
onSuccess()
est appelé & en essayant de lier le deuxième appel à elle, il efface le chargé de pouce!. Je pense que nous avons besoin d'obtenir l'image bitmap (extrait du premier appel à passer comme un espace réservé pour la prochaine .. mais comment? !!OriginalL'auteur akohout
J'ai d'abord utilisé AbdelHady de la solution, mais a constaté que la plus grande image est chargée uniquement après que la miniature est fait, le chargement alors je suis venu avec ce lieu.
En supposant que vous avez une classe utilitaire dans votre projet;
Utilisation:
Dans l'exemple ci-dessus de l'espace réservé est défini en premier, l'url de vignette est situé à côté de l', et indépendamment du fait que la vignette demande est fait, le succès, ou l'échec, la grande de demande d'image est définie une fois que c'est fait. Si l'image grand échec de la demande, puis l'erreur drawable est réglé.
Le seul problème est que si vous utilisez
setIndicatorsEnabled(true)
le débogage indicateurs ne montrent pas pour la grande demande. Aussi loin que je peux dire que cela semble être, par la conception selon cette question convoOriginalL'auteur Subaru Tashiro