我拍照并想把它放在另一个Activity的ImageView中,但出了点问题。这是我的代码:
Camera mCamera;
//Some Code
public void onClick(View v) {
mCamera.takePicture(shutterCallback, rawCallback, jpegCallback);
}
Camera.ShutterCallback shutterCallback = new Camera.ShutterCallback() {
public void onShutter() {
}
};
Camera.PictureCallback rawCallback = new Camera.PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
mCamera.stopPreview();
mCamera.release();
mCamera = null;
Intent inCapture = new Intent(MainActivity.this, SecondActivity.class);
//Actually, I don't know where to put it: here or in jpegCallback
inCapture.putExtra("captured", data);
startActivity(inCapture);
}
};
Camera.PictureCallback jpegCallback = new Camera.PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
//My attempt to load the result into ImageView in the same Activity - didn't work too
if (data != null) {
ByteArrayInputStream imageStream = new ByteArrayInputStream(
data);
Bitmap theImage = BitmapFactory
.decodeStream(imageStream);
imageView.setBackground(null);
imageView.setBackground(new BitmapDrawable(
getResources(), theImage));
}
}
};
它没有运行SecondActivity,我不知道如何在onClick()中声明我的意图,并且能够将byte []数据放入其中(不同的类我无法生成意图静态 - 至少,我不能。有没有更好的方法来捕获照片并将该字节[]传递给另一个Activity?
P.S。我知道还有Camera2更新,但到目前为止,我还没有明白如何使用它。
答案 0 :(得分:0)
你可以使用ContentProvider,虽然有些实现需要由你自己来处理,但它有时可能会很有用,但也不错。你可以做的另一件事是将Bitmap对象放在一个单独的类中的队列或hashmap中,并通过intent传递该位图的id,被调用的activity将获取id并从那里拉出它。你需要在那里处理一些同步。