Android中的绑定器事务失败

Android中的绑定器事务失败,android,bitmap,Android,Bitmap,活动1.课堂 public class CategoryActivity extends BaseActivity implements View.OnClickListener { private RelativeLayout mReLayout; private byte[] mImageByte; @Override protected void onCreate(Bundle savedInstanceState) {

活动1.课堂

   public class CategoryActivity extends BaseActivity implements View.OnClickListener {  

    private RelativeLayout mReLayout;  
    private byte[] mImageByte;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_1);  
        addControl();  
        addEventOnClick();  
        mReLayout.setDrawingCacheEnabled(true);  
    }
    private void addEventOnClick() {
        findViewById(R.id.layout_category_1).setOnClickListener(this);
    }
    private void addControl() {

        mReLayout = (RelativeLayout) findViewById(R.id.relative_category);
    }
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.layout_category_1:
                startActivity();
                break;
            default:
                break;
        }
    }
    private void startActivity() {
        Bitmap layoutBitmap = Bitmap.createBitmap(mReLayout.getWidth(), mReLayout.getHeight(), Bitmap.Config.ARGB_4444);
        Canvas canvas = new Canvas(layoutBitmap);
        mReLayout.draw(canvas);
        ByteArrayOutputStream bStream = new ByteArrayOutputStream();
        layoutBitmap.compress(Bitmap.CompressFormat.PNG, 90, bStream);
        mImageByte = bStream.toByteArray();
        Intent mIntent = new Intent(Activity1.this, Activity2.class);
        mIntent.putExtra(Constant.BYTE_IMAGE, mImageByte);
        startActivity(mIntent);

    }
    }
活动2.课堂

OnCreate

byte[] mImageByte=getIntent().getExtras().getByteArray(Constant.BYTE_IMAGE);
Bitmap bmp = BitmapFactory.decodeByteArray(mImageByte, 0, mImageByte.length);
    mImageView.setImageBitmap(bmp);
当我单击onClickListener时。它会显示错误:绑定器事务失败

请救救我

我认为原因是您试图将位图作为一个额外的目标。虽然这在理论上是可能的,但我认为图像的大小限制了这种可能性

如果要将图像传递给另一个活动,请首先

  • 将位图保存到文件中
  • 将文件路径作为字符串发送到下一个活动
  • 使用下一个活动中的文件路径重新创建位图
如果这很困难,那么尝试使用单例在内存中临时存储位图

下面是如何将其保存到磁盘

首先在清单中添加权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
现在将文件名发送到下一个活动

mIntent.putExtra("filename", "imageBitmap");
在下一个活动中,重新创建位图

String fName = getIntent().getStringExtra("filename");
String path = Environment.getExternalStorageDirectory() + fName + ".png"
Bitmap bm = BitmapFactory.decodeFile(path);

希望这能有所帮助。

我认为原因是您试图将位图作为一个额外的目标。虽然这在理论上是可能的,但我认为图像的大小限制了这种可能性

如果要将图像传递给另一个活动,请首先

  • 将位图保存到文件中
  • 将文件路径作为字符串发送到下一个活动
  • 使用下一个活动中的文件路径重新创建位图
如果这很困难,那么尝试使用单例在内存中临时存储位图

下面是如何将其保存到磁盘

首先在清单中添加权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
现在将文件名发送到下一个活动

mIntent.putExtra("filename", "imageBitmap");
在下一个活动中,重新创建位图

String fName = getIntent().getStringExtra("filename");
String path = Environment.getExternalStorageDirectory() + fName + ".png"
Bitmap bm = BitmapFactory.decodeFile(path);

希望这有帮助。

你是说如何保存位图的示例吗?你能帮我修复它吗。我想将布局视图另存为图像??你是指如何保存位图的示例吗?你能帮我修复它吗。我想将布局视图另存为图像??请发布完整的堆栈跟踪!我是说logcat stack!当我点击按钮。它不会启动活动。和Logcat show 03-15 16:50:36.257 11916-11916/com.bct E/JavaBinder:!!!活页夹事务失败!!!好的,您通过intent输入的额外数据的大小有一个限制(我猜是1MB)
mImageByte
size太大了,这就是为什么会出现异常。您能给出修复方法吗。谢谢请发布完整的堆栈跟踪!我是说logcat stack!当我点击按钮。它不会启动活动。和Logcat show 03-15 16:50:36.257 11916-11916/com.bct E/JavaBinder:!!!活页夹事务失败!!!好的,您通过intent输入的额外数据的大小有一个限制(我猜是1MB)
mImageByte
size太大了,这就是为什么会出现异常。您能给出修复方法吗。谢谢