J'ai le code suivant pour charger une image dans Picasso, en utilisant un dessinable pour que l'espace réservé s'affiche pendant le téléchargement de l'image. Ce que je veux cependant, c'est un spinner de style barre de progression en rotation animé qui s'anime autour et autour pendant le chargement de l'image, comme je le vois dans la plupart des applications professionnelles. Picasso ne semble pas prendre en charge cela, uniquement des dessins d'images statiques. Existe-t-il un moyen de le faire fonctionner avec Picasso ou dois-je faire quelque chose de différent?
Picasso.with(context).load(url)
.placeholder(R.drawable.loading)
.error(R.drawable.image_download_error)
.into(view);
J'ai implémenté la boîte de dialogue de progression jusqu'au téléchargement de l'image et c'est très simple. Prenez votre ImageView dans une disposition relative et placez le chargeur de progression sur la même vue d'image. Appliquez le code ci-dessous et gérez uniquement la visibilité de la boîte de dialogue de progression.
Prendre plaisir. :)
la source
final Callback loadedCallback = new Callback() { @Override public void onSuccess() { // your code } @Override public void onError() { // your code } }; imageView.setTag(loadedCallback); Picasso.with(context).load(url).into(imageView, loadedCallback);
Picasso ne prend malheureusement pas en charge les espaces réservés animés.
Une façon de contourner ce problème consiste à placer votre ImageView dans un FrameLayout avec le dessin animé en dessous. De cette façon, lorsque Picasso charge l'image, elle se chargera au-dessus de l'espace réservé animé, donnant à l'utilisateur l'effet souhaité.
Vous pouvez également charger l'image dans une cible . Ensuite, vous auriez la barre de progression affichée par défaut, et lorsque la méthode onBitmapLoaded est appelée, vous pouvez la masquer et afficher l'image. Vous pouvez voir une implémentation de base de ceci ici
la source
Ajoutez simplement l'attribut de forme dans la réponse de DBragion comme ci-dessous et cela fonctionnera comme du charme. Bon codage.
Vous pouvez également utiliser Glide:
la source
J'ai trouvé réponse à cette question!
Voir: https://github.com/square/picasso/issues/427#issuecomment-266276253
En plus de la réponse de @DBragion, essayez ci-dessous.
Maintenant, nous pouvons fixer la hauteur et la largeur!
Je pense qu'il y a deux points clés.
utilisez noFade ()
définir le scaleType de image_view sur "CENTER_INSIDE"
la source
Je l'ai fait fonctionner de la manière suivante:
Créé un dessinable (trouvé quelque part sur Internet) et le mettre dans le res / drawable:
Dans mon article pour l'élément ProgressBar ajouté par GridView:
Dans l'adaptateur, un objet cible a été ajouté avec les paramètres suivants, où l'affiche et la flèche sont des références à ImageView et ProgressBar:
// Cible pour afficher / masquer ProgressBar sur ImageView
Les résultats seront comme ça lors du chargement - le cercle tourne (désolé pour cette capture d'écran, mais les images apparaissent trop vite): ScreenShot
la source
Pour tous ceux qui essaient d'utiliser la technique de DBragion: assurez-vous que vous avez la dernière version de Picasso, sinon elle ne tournera pas. Le mien n'a pas fonctionné jusqu'à ce que j'utilise la version 2.5.2.
la source
Dans ce lien , Jake Wharton a déclaré:
Alors tu ne peux pas
la source
Utilisez simplement Picasso PlaceHolder
la source