2016-06-28 14 views
5

Ich wechsle von Picasso zu Glide. Alles funktioniert gut, außer dass ich keine Methode finde, um einen Fehlerrückruf zu erhalten. Ich möchte ein Bitmap abrufen, weitergeben und daraus eine Android Palette generieren. Auch wenn ein Fehleraufruf einem Ladeaufruf zur Verfügung gestellt werden kann, wird er nicht in onResourceReady angezeigt, wenn ein SimpleTarget verwendet wird.Glide: onError Callback

In Picasso habe ich es wie folgt aus:

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

Danke:

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

Mein glide Code sieht wie folgt aus.

Antwort

5

Sie SimpleTarget verwenden, die die Schnittstelle Target implementiert, der die Methode definiert onLoadFailed so brauchen Sie nur zu tun:

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

Diese Erklärung sollte ein Teil der Standard git readme Abschnitt werden, weil „onLoadFailed“ eine grundlegende so ist, Fehlerbehandlung. Vielen Dank! – carl

+1

Funktioniert nicht für mich. – Klevi01

+0

Vielleicht verwenden Sie 4.0.0-RC0? Versuchen Sie 3.8.0 intead. – Clint