Android中的绑定器事务失败
活动1.课堂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) {
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太大了,这就是为什么会出现异常。您能给出修复方法吗。谢谢