2016-06-28 16 views
5

我從畢加索轉換到Glide。一切工作正常,但我找不到一個方法來獲取錯誤回調。我想檢索一個位圖,將其傳遞並從中生成一個Android調色板。另外,雖然errorDrawable可以提供給加載調用,但在使用SimpleTarget時,它不會在onResourceReady中顯示。滑行:onError回調

在畢加索我做了這樣的:

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

我的滑行代碼如下所示:

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

感謝。

回答

5

您正在使用SimpleTarget實現接口Target定義方法onLoadFailed所以你只需要做:

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

這種解釋應該成爲默認的git自述節的一部分,因爲「onLoadFailed」是這樣一個基本錯誤處理。謝謝! – carl

+1

不適合我。 – Klevi01

+0

也許你正在使用4.0.0-RC0?嘗試3.8.0 intead。 – Clint

相關問題