2015-06-22 115 views
1

我試圖顯示與滑翔局部圖:異常使用時的Glide圖書館

protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    final ImageView imageView = (ImageView) findViewById(R.id.backdrop); 
    if (resultCode == RESULT_OK) { 
     if (intent != null) { 
      String picName = RutaActivity.getPicName(MyApplication.TAKE_PDV_PIC); 
      String newPicPath = ImageUtils.saveLargePic((Activity) ctx, picName); 
      Log.e("pic", newPicPath); 
      Glide.with(ctx) 
        .load(newPicPath) 
        .asBitmap() 
        .toBytes() 
        .centerCrop() 
        .into(imageView); 
     } 
    } 
} 

我檢查了newPicPath,和路徑是確定的,但我得到這個例外...留言還不是很明確...任何想法?

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=10, result=-1, data=Intent { act=inline-data dat=content://media/external/images/media/206 (has extras) }} to activity {com.myapp.mobile/com.myapp.mobile.AddActivity}: java.lang.IllegalArgumentException: Unhandled class: class [B, try .as*(Class).transcode(ResourceTranscoder) 
     at android.app.ActivityThread.deliverResults(ActivityThread.java:3187) 
     at android.app.ActivityThread.handleSendResult(ActivityThread.java:3230) 
     at android.app.ActivityThread.access$1200(ActivityThread.java:134) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1266) 
     at android.os.Handler.dispatchMessage(Handler.java:99) 
     at android.os.Looper.loop(Looper.java:137) 
     at android.app.ActivityThread.main(ActivityThread.java:4867) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:511) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774) 
     at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.IllegalArgumentException: Unhandled class: class [B, try .as*(Class).transcode(ResourceTranscoder) 
     at com.bumptech.glide.request.target.ImageViewTargetFactory.buildTarget(ImageViewTargetFactory.java:24) 
     at com.bumptech.glide.Glide.buildImageViewTarget(Glide.java:297) 
     at com.bumptech.glide.GenericRequestBuilder.into(GenericRequestBuilder.java:697) 
     at com.bumptech.glide.BitmapRequestBuilder.into(BitmapRequestBuilder.java:498) 
     at com.myapp.mobile.AddActivity.onActivityResult(AddActivity.java:134) 
     at android.app.Activity.dispatchActivityResult(Activity.java:5231) 
     at android.app.ActivityThread.deliverResults(ActivityThread.java:3183) 

回答

1

我剛剛刪除

toBytes() 

,做!

沒什麼大不了的! 我更喜歡發佈問題的答案,而不是刪除帖子!

+3

toBytes()調用表明您希望Glide採用解碼類型(在這種情況下,因爲asBitmap()調用,位圖),並在顯示它之前將其轉換爲byte []。但是,Glide不支持在ImageViews中顯示byte []。如果你刪除了toBytes()調用,那麼你只需加載一個Bitmap,這個Glide可以在ImageView中顯示。 –

+0

Tx的解釋! –

+0

我需要使用toBytes以將其轉換爲像toBytes(CompressFormat.JPEG,80)這樣的jpeg類型,但我得到的是相同的異常。任何人都知道如何解決這個問題? – Basanth