将位图传递给另一个活动,但收到错误FAILED BINDER TRANSACTION

时间:2015-06-29 12:04:05

标签: android bitmap

朋友您好我想将位图从一个活动传递到另一个活动。我成功地做了,但我的问题是,当位图传递给另一个活动时,它给出了FAILED BINDER TRANSACTION的错误。请各位朋友帮我解决这个问题。 我使用下面的代码将图像传递给另一个活动

     Uri selectedImageUri = data.getData();

       if(selectedImageUri!=null){

                selectedImagePath = getPath(selectedImageUri);
                Intent i = new Intent(MainActivity.this, ImageCropperActivity.class);
                i.putExtra("mpath", selectedImagePath);
                startActivity(i);

我正在获得这样的位图。

 if(imagePath != null){
        //Toast.makeText(getApplicationContext(), "image path " +imagePath, Toast.LENGTH_LONG).show();
        //imgCrop.setImageBitmap(BitmapFactory.decodeFile(imagePath));
        mImageUri = Uri.parse(getIntent().getStringExtra("mpath"));
        mFileTemp = new File(getIntent().getStringExtra("mpath"));
    }
请朋友们帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

首先尝试压缩位图,然后将其传递给下一个活动

使用此

压缩
 ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
    byte[] bytes = stream.toByteArray(); 
    setresult.putExtra("BMP",bytes);

使用此代码解压缩

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

--- ---注

There are some limitations as to how much data a bundle can contain. If your bundle or intent extras are too large you can get FAILED BINDER TRANSACTION error.
希望它有所帮助。