¿Cómo escuchar los eventos completos de carga de Picasso (Android)?

¿Hay alguna manera de escuchar los eventos de Picasso al usar el constructor como:

Picasso.with(getContext()).load(url).into(imageView);

Estoy tratando de llamar a requestLayout() e invalidate() en el GridView padre para que cambie el tamaño correctamente, pero no sé cómo establecer un oyente o devolución de llamada.

Veo que Picasso tiene informes de eventos de error, pero ¿hay un evento de éxito?

6 Solutions collect form web for “¿Cómo escuchar los eventos completos de carga de Picasso (Android)?”

Puede utilizar una Callback de Callback para obtener eventos onSuccess y onError. Sólo tiene que añadir una nueva devolución de llamada a su solicitud de la siguiente manera:

 Picasso.with(getContext()) .load(url) .into(imageView, new com.squareup.picasso.Callback() { @Override public void onSuccess() { } @Override public void onError() { } }); 

A continuación, puede realizar cualquier modificación y modificaciones en la devolución de llamada onSuccess.

Si necesita acceder al mapa de bits antes de cargarlo en la vista, pruebe con:

 private Target target = new Target() { @Override public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { } @Override public void onBitmapFailed() { } } 

En el método de llamada:

 Picasso.with(this).load("url").into(target); 

Lo ideal sería implementar el objetivo en un objeto de vista o vista titular directamente.

Espero que esto ayude

Cuadratura últimamente ha actualizado la clase Target, y ahora, hay más métodos para reemplazar (se añadió onPrepareLoad y se cambió onBitmapFailed):

 Target target = new Target() { @Override public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { } @Override public void onBitmapFailed(Drawable errorDrawable) { } @Override public void onPrepareLoad(Drawable placeHolderDrawable) { } }; 

Y todavía tiene que usar:

 Picasso.with(context).load(url).into(target); 

Respondiendo a la pregunta de seguimiento de @Jas como un comentario a la respuesta de MrEngineer13 (ya que no tengo suficiente reputación para comentar en ninguna respuesta), debería usar el método error() antes de registrar el Callback en el método into() , por ejemplo :

 Picasso.with(getContext()) .load(url) .error(R.drawable.error_placeholder_image) .into(imageView, new com.squareup.picasso.Callback() { @Override public void onSuccess() { //Success image already loaded into the view } @Override public void onError() { //Error placeholder image already loaded into the view, do further handling of this situation here } } ); 
  private final Callback mImageCallback = new Callback() { @Override public void onSuccess() { startPostponedEnterTransition(); } @Override public void onError() { startPostponedEnterTransition(); } }; RequestCreator creator = Picasso.with(getActivity()).load(list.get(position).getId()); creator.into(imageView, mImageCallback); 

Prueba esto

  Picasso.with(context) .load(services.get(position).getImageInactive()) .into(holder.icon, new Callback() { @Override public void onSuccess() { holder.imageLoad.setVisibility(View.GONE); } @Override public void onError() { holder.icon.setImageResource(R.drawable.ic_error_image_load); } }); 
  • ¿Cómo descargar la imagen más rápido en android Volley / Picasso / Glide cualquier otro?
  • Clase de ImageView personalizada que no funciona con la biblioteca de descarga de imágenes de Picasso
  • Android Picasso Configurar el tamaño de LruCache
  • Android: falla en la imagen de carga de Picasso. Cómo mostrar mensaje de error
  • Picasso para cargar matriz de bytes
  • Borrar memoria caché de Picasso
  • ¿Podría ocultar la barra de progreso después de cargar la imagen en picasso?
  • Android borrar algunas fotos de caché Picasso
  • UIL, Picasso - Las imágenes en adaptador siempre se recargan cuando se detiene el desplazamiento
  • Uso de Picasso con Image Getter
  • La biblioteca de Picasso no carga imágenes de la tarjeta SD en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.