【发布时间】:2015-11-27 10:42:50
【问题描述】:
用户在 Android 中使用 SurfaceView 拍照后,我需要获取图像的文件路径 Uri。我需要这个,以便我可以在另一个视图中显示图像。
这是我当前的代码:
captureImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mCamera.takePicture(null, null, jpegCallback);
}
});
mSurfaceView.getHolder().addCallback(this);
mSurfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
mCamera = Camera.open();
jpegCallback = new PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
try {
Intent i = new Intent(CameraActivity.this, ImageEditor.class);
//i.putExtra("image", I_need_to_send_the_Uri);
startActivityForResult(i, 0);
} catch (Exception e) {
e.printStackTrace();
}
}
};
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
mCamera.setPreviewDisplay(mSurfaceView.getHolder());
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
Camera.Parameters params = mCamera.getParameters();
List<Camera.Size> sizes = params.getSupportedPreviewSizes();
Camera.Size selected = sizes.get(0);
params.setPreviewSize(selected.width, selected.height);
mCamera.setParameters(params);
mCamera.setDisplayOrientation(90);
mCamera.startPreview();
}
如何从中获取图像 Uri?或者您建议在另一个视图中打开图像的其他方法是什么?我尝试发送 byte[] 数组和位图,但它太重而无法在视图之间传输,这是不好的做法。如果可以,请帮忙:)
【问题讨论】:
标签: java android android-layout android-camera