tutorial recyclerview item glide development delete android android-glide

android - item - Advertencia utilizando Glide en Recyclerview



swipe recyclerview android (5)

Corro al mismo problema después de la primera ejecución de mi aplicación en Android M (Nexus 5x).

EDITAR: después de abrir el problema en Glide Github - github.com/bumptech/glide/issues/743 , encontré que mi "solución" original no resolvió el problema, solo oculta los mensajes. La advertencia proviene de Android Bitmap y se debe a que Glide reutiliza el Bitmap para un mejor rendimiento.

Acabo de empezar a pasar de Universal Image Loader a Glide. Sin embargo, al desplazarme hacia abajo y hacia arriba nuevamente en Recyclerview, recibo toneladas de mensajes de advertencia.

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

Si cambio Glide por otra biblioteca de carga de imágenes, la advertencia desaparece. Código en bindViewHolder relacionado con imágenes:

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

Probado en un Nexus 5.


Estaba recibiendo la advertencia y la corrupción gráfica. Esto fue en forma de mapas de bits recortados que aparecen en la parte superior e inferior de la vista del reciclador y permanecen allí si se desplazan demasiado rápido.

Poner la vista de la imagen dentro del diseño del marco ha eliminado la corrupción gráfica.


Esto se discute here ,

Por lo general, este es el resultado de un uso incorrecto de los mapas de bits, ya sea devolviendo un mapa de bits a la agrupación varias veces sin obtener una obtención intermedia, o haciendo referencia al mapa de bits después de llamar a clear () en el destino correspondiente. Si tiene transformaciones personalizadas, ese es un buen lugar para mirar de cerca para asegurarse de que no está devolviendo un Bitmap a la agrupación dos veces. Puede ver más sobre este problema en la wiki: https://github.com/bumptech/glide/wiki/Resource-re-use-in-Glide .

El registro que ve es del bloque catch (excepción detectada). Asegúrate de que eres:

  • No intento cargar 2 mapas de bits en una vista de destino
  • No borrar el recurso para reutilizar la vista de destino, sino conservar la referencia del recurso

Ya que está utilizando recyclerView, probablemente el segundo punto sea verdadero, es decir, reciclar la vista mientras mantiene todas las referencias de mapa de bits.


Intente llamar a Glide.clear () antes de cargar la imagen.

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

Espero que esto ayude.


Puede limpiar los registros con Filtros Logcat en Android Studio.

Agregue ^(?!AbsListView|IInputConnectionWrapper|ApplicationPackageManager|Bitmap|ViewRootImpl) en Regex del filtro Logcat de Android.