usar studio sirve que para manejo librerias libreria imagenes glide dev descargar con como cargar java android picasso

java - manejo - para que sirve la libreria picasso en android studio



¿Cómo escuchar a Picasso(Android) cargar eventos completos? (7)

Como complemento a otras respuestas, en caso de que no sepa dónde usar la vista de imagen original, por ejemplo, ImageView myIV :

Original:

Picasso.with(activity).load(url).into(myIV);

Nuevo (dentro de onBitmapLoaded() del new Target() ):

public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { myIV.setImageBitmap(bitmap); }

¿Hay alguna manera de escuchar eventos de Picasso cuando se usa 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 de tamaño correctamente, pero no sé cómo configurar un escucha o una devolución de llamada.

Veo que Picasso tiene informes de eventos de error, pero ¿hay algún evento exitoso?


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); } });


Puede usar una Callback de Callback para obtener eventos onSuccess y onError. Simplemente agregue 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() { } });

Luego puede realizar cualquier alteración y modificación en la devolución de llamada onSuccess.


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), debe usar el método error() antes de registrar la Callback de 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 } } );


Si necesita acceder al mapa de bits antes de que se cargue en la vista, intente usar:

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 Target en una vista u objeto de soporte de vista directamente.

Espero que esto ayude


Square recientemente ha actualizado la clase Target y ahora hay más métodos para anular ( onPrepareLoad y 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 tienes que usar:

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


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);