2016-06-28 15 views
5

Sto passando da Picasso a Glide. Tutto funziona bene, tranne che non riesco a trovare un metodo per ottenere una richiamata di errore. Voglio recuperare una bitmap, passarla e generare una palette Android da essa. Inoltre, mentre un erroreDrawable può essere fornito a una chiamata di caricamento, non verrà visualizzato in onResourceReady quando si utilizza uno SimpleTarget.Glide: onError Callback

In Picasso ho fatto in questo modo:

target = new Target() { 
      @Override 
      public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { 
       //handle Bitmap, generate Palette etc. 
      } 

      @Override 
      public void onBitmapFailed(final Drawable errorDrawable) { 
       // use errorDrawable to generate Palette 
      } 

      @Override 
      public void onPrepareLoad(final Drawable placeHolderDrawable) { 
      } 
     }; 
     int width = (int) DisplayUnitsConverter.dpToPx(this, 120); 
     int height = (int) DisplayUnitsConverter.dpToPx(this, 40); 
     Picasso.with(this).load(config.getPathToLogo()).resize(width, height).error(errorDrawableId).into(target); 

Il mio codice glide si presenta così:

Glide.with(context) 
    .load(config.getPathToLogo()) 
    .asBitmap() 
    .into(new SimpleTarget<Bitmap>(width, height) { 
     @Override 
     public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) { 
      //handle Bitmap, generate Palette etc. 
     } 
    }); 

Grazie.

risposta

5

Si utilizza SimpleTarget che implementa l'interfaccia Target che definisce il metodo onLoadFailed modo che solo bisogno di fare:

Glide.with(context) 
    .load(config.getPathToLogo()) 
    .asBitmap() 
    .into(new SimpleTarget<Bitmap>(width, height) { 
     @Override 
     public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) { 
      //handle Bitmap, generate Palette etc. 
     } 

     @Override 
     public void onLoadFailed(Exception e, Drawable errorDrawable) { 
      // Do something. 
     } 
    }); 
+0

Questa spiegazione dovrebbe diventare parte della sezione readme di default git perché "onLoadFailed" è una tale base gestione degli errori. Grazie! – carl

+1

Non funziona per me. – Klevi01

+0

Forse stai usando 4.0.0-RC0? Prova a 3.8.0 intead. – Clint