2015-12-31 70 views
0

我想從AddMoreClaimsAddClaimslistView回圖像。當我點擊AddMoreClaims提交button時,我收到消息E/JavaBinder﹕ !!! FAILED BINDER TRANSACTION !!!仍然得到錯誤而失敗粘結劑交易雖然有壓縮它

我用這個method但仍然得到這個惱人的消息!

AddMoreClaims

Bitmap bmp,photo; 
byte[] bytes; 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, 
            Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     switch (requestCode) { 
      case RESULT_LOAD_IMAGE: 
       if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK & data != null && data.getData() !=null) { 
        selectedImage = data.getData(); 
        try 
        { 
         photo= MediaStore.Images.Media.getBitmap(getContentResolver(), selectedImage); 
         ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
         photo.compress(Bitmap.CompressFormat.PNG, 100, stream); 
         bytes= stream.toByteArray(); 
         bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length); 
         imageView.setImageBitmap(bmp); // image get displayed 
        }catch(IOException e) 
        { 
         e.printStackTrace(); 
        } 
       } 
       break; 

選定的圖像將在imageViewAddMoreClaims被顯示。

當提交button被點擊時,我希望它返回到AddClaims

submit.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 

     Intent returnIntent = new Intent(); 
     returnIntent.putExtra("BMP", bmp); 
     setResult(Activity.RESULT_OK, returnIntent); 
     finish(); 

    } 
}); 

這裏有什麼問題?我錯過了什麼嗎?

回答

2

我認爲你不是在壓縮你應該這樣做的bmp。

submit.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 

     Intent returnIntent = new Intent(); 
     ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
     bmp.compress(Bitmap.CompressFormat.PNG, 100, stream); 
     byte[] bytes = stream.toByteArray(); 
     returnIntent.putExtra("BMP", bytes); 
     setResult(Activity.RESULT_OK, returnIntent); 
     finish(); 

    } 
}); 

那麼你應該將其解壓縮,你需要顯示圖像

byte[] bytes = data.getByteArrayExtra("BMP"); 
Bitmap bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length); 
imageView.setImageBitmap(bmp); 
-1

不要用大量的數據壓縮成意向,這將消耗更多的CPU和時間, 看到this線程。 如果壓縮數據也超過了binder的限制,也會得到這個錯誤:!!! FAILED BINDER TRANSACTION !!!

相關問題