Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Biblioteca de Picasso, Android: Uso de escuchas de errores

Estoy jugando con la biblioteca de Picasso para cargar imágenes, pero me encuentro con un problema. Cuando una imagen no se carga, quiero ocultar la vista en lugar de cargarla en una imagen predeterminada. Me di cuenta de la fuente que parece que la única manera de agregar un escucha es del constructor, pero el método de error nunca se llama cuando una imagen no se carga. Alguien tiene alguna experiencia con esto?

iv = (ImageView) findViewById(R.id.imageView); Picasso.Builder builder = new Picasso.Builder(getApplicationContext()); builder.listener(new Picasso.Listener() { @Override public void onImageLoadFailed(Picasso arg0, String arg1) { Log.e("Picasso Error", "Errored out, hiding view"); iv.setVisibility(View.GONE); } }); Picasso pic = builder.build(); pic.load("thisshouldbreak.jpg").into(iv); 

  • ¿Por qué no se llama a UtteranceProgress Listener a Text to Speach?
  • ¿Por qué es onNothingSelected método necesario en el oyente spinner?
  • En Android, ¿cómo puedo tomar una acción cada vez que cambia una variable?
  • Evento Android de larga duración
  • Android cómo hacer que el oyente a una variable personalizada?
  • ¿Por qué es onNothingSelected método necesario en el oyente spinner?
  • Evento Android de larga duración
  • En Android, ¿cómo puedo tomar una acción cada vez que cambia una variable?
  • ¿Por qué no se llama a UtteranceProgress Listener a Text to Speach?
  • Android cómo hacer que el oyente a una variable personalizada?
  • 5 Solutions collect form web for “Biblioteca de Picasso, Android: Uso de escuchas de errores”

    Picasso 2.0 le permite adjuntar una devolución de llamada a una solicitud.

    https://github.com/square/picasso

    La devolución de llamada que está utilizando es para el oyente "global" y le ayuda a depurar errores que potencialmente ocurren debido a una carga de red.

    Use load(url).into(view, new Callback() {...}); En Picasso 2.0.

    Recuerde invocar cancelRequest(target) si está utilizando una Callback .

    Mi ejemplo:

     Picasso picasso = new Picasso.Builder(parent.getContext()) .listener(new Picasso.Listener() { @Override public void onImageLoadFailed(Picasso picasso, Uri uri, Exception exception) { //Here your log } }) .build(); picasso.load(shopModel.getShopImg()) .fit() .into(viewHolder.shopImg); 

    Puede intentar agregar un oyente 'global'.

      // create Picasso.Builder object Picasso.Builder picassoBuilder = new Picasso.Builder(this); picassoBuilder.listener(new Picasso.Listener() { @Override public void onImageLoadFailed(Picasso picasso, Uri uri, Exception exception) { Log.e("PICASSO", uri.toString(), exception); } }); // Picasso.Builder creates the Picasso object to do the actual requests Picasso picasso = picassoBuilder.build(); try { Picasso.setSingletonInstance(picasso); } catch (IllegalStateException ignored) { // Picasso instance was already set // cannot set it after Picasso.with(Context) was already in use } 

    Cualquier llamada posterior a Picasso.with(Context context) devolverá la instancia conectada al listener, por lo que todos los fallos serán registrados.

    Tenga en cuenta que debe llamar a setSingletonInstance lo antes posible, por ejemplo, en Application onCreate .

    Código PS adoptado desde aquí – Personalización de Picasso con Picasso.Builder

    Mi respuesta:

     File file = new File(filePath); Picasso.with(context).load(file).placeholder(R.drawable.draw_detailed_view_display).error(R.drawable.draw_detailed_view_display) .resize(400, 400).into(mImageView, new Callback() { @Override public void onSuccess() { } @Override public void onError() { mImageView.setVisibility(View.GONE); } }); 

    Sólo una sugerencia, pero puede evitar problemas en la programación si usted hace un "vacío" png archivo y establecerlo como el archivo de imagen por defecto en su carpeta res … un poco tonto, sé … pero es probable que funcione sin luchar .. .

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.