¿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); } }); 
  • Android Studio Picasso gif loading image para marcador de posición
  • ¿Picasso aplica opciones de redimensionamiento durante fetch ()?
  • Elementos compartidos de Android con Picasso
  • Cómo agregar un token de autenticación en el encabezado de la biblioteca Picasso
  • Android Picasso Configurar el tamaño de LruCache
  • La biblioteca de Picasso dejó de funcionar hoy con los acoplamientos del cuadro del gráfico del facebook
  • Appcompat CardView y Picasso sin esquinas redondeadas
  • Error de JNI en la animación de transición de escena - Capa supera el máximo
  • Hay una manera de cargar una imagen predeterminada en picasso
  • El objetivo no debe ser nulo utilizando la Biblioteca Picasso
  • Escala de tamaño de la imagen en Picasso
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.