web-dev-qa-db-fra.com

Pourquoi Glide ne charge-t-il pas une image de l'ID de la ressource sur mon ImageView?

J'ai toutes les images dont j'ai besoin pour mon application, et j'essaie de l'accélérer et de la rendre lisse et soyeuse. J'ai donc utilisé Glide pour charger les images. Cela fonctionne dans d'autres zones de mon application, mais pas dans mon viewpager.

Dans mon fragment j'essaye de charger mon image comme si

Glide.with(this).load(R.drawable.my_drawable).into(myImageView);

et rien ne se produit ni n'apparaît et je ne reçois pas d'exception ni de message d'erreur de la part de Glide.

9
Jacob Collins

Consultez la page Débogage et gestion des erreurs wiki pour activer la journalisation. Cela devrait vous dire si la charge échoue et pourquoi.

Si vous ne voyez aucun journal d'erreur, il est possible que votre vue n'ait pas de taille, soit parce que sa taille est 0, soit parce qu'elle n'a pas été mise en page (visibilité définie sur View.GONE, etc.). Si tel est le cas, vous pouvez effectuer un test de vérification en ajoutant un appel à override() avec des hauteurs de largeur et de hauteur valides (essayez 400, 400 ou un autre élément à tester).

Si l'appel de override() résout le problème, examinez votre fichier xml et voyez si vous pouvez modifier l'affichage de manière à avoir une taille fixe ou au moins à obtenir une taille valide. Si tout échoue, vous pouvez toujours appeler override() avec Target.SIZE_ORIGINAL comme largeur et hauteur.

5
Sam Judd

Je sais que cette question est fermée depuis longtemps, mais j’ai trouvé une bonne solution en utilisant l’espace réservé ou l’image d’erreur. Vous pouvez donc essayer.

Glide.with(<<MyActivity>>)
    .load("")
    .placeholder(<<myDrawable>>)
    .into(imageView);

Pas sûr que ce soit ce que vous vouliez mais s'il y en a d'autres qui ont le même problème, au moins cela semble fonctionner avec un minimum de travail. :)

14
Tobias Reich

Si vous utilisez un vecteur ou un fichier SVG, il est possible que votre version de Glide ne le supporte pas et ne se charge pas.

0
Frank

La manière de Tobias Reich génère un tas de journaux d'avertissement, car l'url de chargement est "". Si vous ne voulez pas de journaux d'avertissement,

Essayez ceci:

int drawableIdentifier = activity.getResources().getIdentifier("my_drawable_image_name", "drawable", activity.getPackageName());
Glide.with(activity)
     .load(drawableIdentifier)
     .into(imageView);
0
Joonsoo