private void returnImage(byte[] array)
{
Intent intent = new Intent();
intent.putExtra(RETURNING_MESSAGE, array);
setResult(RESULT_OK, intent);
finish();
}
我通过这些回调
通过相机获取该字节数组@Override
public void onClick(View v) {
mCamera.takePicture(null, null, new Camera.PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
mCamera.release();
returnImage(data);
}
});
}
在运行时我使用相机,但活动没有完成,Logcat说E/JavaBinder﹕ !!! FAILED BINDER TRANSACTION !!!
是由图像的大小引起的吗?我查了一下,发现它超过200万字节。我需要使用我的自定义相机,但我无法返回我的数据。
答案 0 :(得分:4)
是否由图像尺寸引起?
是
我查了一下,发现它超过200万字节。
这大约是你能回来的两倍。
我需要使用自定义相机,但我无法返回数据。
或者:
不要将它们作为单独的活动,而是将它们作为一个活动中的单独片段,因此您不必担心Intent
是限制因素,或
使用其他内容,例如从静态数据成员到byte[]
的(临时!)引用,允许同一个应用内的多个活动共享数据,或者
如果调用startActivityForResult()
的活动位于单独的应用中,请使用ContentProvider
将字节流回来