Question Avertissement utilisant Glide in Recyclerview


Je viens de commencer à passer d'Universal Image Loader à Glide. Cependant, lorsque vous faites défiler la liste de recyclage, je reçois des tonnes de messages d’avertissement.

W/Bitmap: Called reconfigure on a bitmap that is in use! This may cause graphical corruption!

Si je remplace Glide par une autre bibliothèque de chargement d'image, l'avertissement disparaît. Code dans bindViewHolder lié aux images:

   Glide.with(viewHolder.imageView.getContext())
            .load(DisplayImageUtil.getImageUrl(item.getImageUrl(), 600))
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .into(viewHolder.imageView);

Testé sur un Nexus 5.


16
2017-10-27 08:34


origine


Réponses:


Je cours sur le même problème après la première exécution de mon application sur Android M (Nexus 5x).

MODIFIER: après l'ouverture du numéro sur Glide Github - https://github.com/bumptech/glide/issues/743, J'ai trouvé que ma "solution" originale ne résolvait pas le problème, masquais seulement les messages. L'avertissement provient d'Android Bitmap et c'est parce que Glide réutilise la Bitmap pour de meilleures performances.


1
2017-11-13 13:39



Essayez d'appeler Glide.clear () avant de charger l'image.

Glide.clear(viewHolder.imageView);
Glide.with(viewHolder.imageView.getContext())
        .load(DisplayImageUtil.getImageUrl(item.getImageUrl(), 600))
        .diskCacheStrategy(DiskCacheStrategy.ALL)
        .into(viewHolder.imageView);

J'espère que cette aide


0
2018-04-26 15:38



Je recevais l'avertissement et la corruption graphique. Cela se présentait sous la forme de bitmaps découpés apparaissant en haut et en bas de la vue du recycleur et restant là si le défilement était trop rapide.

Mettre la vue d’image à l’intérieur de la mise en page du cadre s’est débarrassé de la corruption graphique.


0
2017-07-11 18:36



Vous pouvez nettoyer les journaux avec les filtres Logcat sur Android Studio.

Ajouter ^(?!AbsListView|IInputConnectionWrapper|ApplicationPackageManager|Bitmap|ViewRootImpl) dans l'expression régulière du filtre Android Logcat.


0
2017-09-03 08:30



Ceci est discuté ici ,

C’est généralement le résultat d’une mauvaise utilisation des Bitmaps, soit en renvoyant un   Bitmap au pool plusieurs fois sans get intermédiaire, ou par   référençant le bitmap après avoir appelé clear () sur le correspondant   Cible. Si vous avez des transformations personnalisées, c’est un bon endroit pour   regarder de près pour vous assurer que vous ne retournez pas un bitmap au pool   deux fois. Vous pouvez en savoir plus sur ce problème sur le wiki:    https://github.com/bumptech/glide/wiki/Resource-re-use-in-Glide.

Le journal que vous voyez provient du bloc catch (exception capturée). Assurez-vous que vous êtes:

  • Ne pas essayer de charger 2 bitmap dans une vue cible
  • Ne pas effacer la ressource pour réutiliser la vue cible mais conserver la référence de la ressource

Puisque vous utilisez recyclerView, le deuxième point est probablement vrai, à savoir recycler la vue tout en conservant toutes les références bitmap.


0
2017-10-27 08:55