gpt4 book ai didi

java - 安卓相机 : Get Picture Uri after the photo is taken

转载 作者:行者123 更新时间:2023-11-29 03:05:35 24 4
gpt4 key购买 nike

我需要在用户使用 Android 中的 SurfaceView 拍照后获取图像的文件路径 Uri。我需要这个以便我可以在另一个 View 中显示图像。

这是我当前的代码:

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?或者你建议用什么其他方法在另一个 View 中打开图像?我尝试发送 byte[] 数组和位图,但它太重而无法在 View 之间传输,这是不好的做法。如果可以,请帮忙:)

最佳答案

首先您需要将数据保存到文件中并将其存储到设备存储器中。

PictureCallback mPicture = new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
File pictureFile = getOutputMediaFile();
if (pictureFile == null) {
return;
}
try {
FileOutputStream fos = new FileOutputStream(pictureFile);
fos.write(data);
fos.close();
} catch (FileNotFoundException e) {

} catch (IOException e) {
}
}
};

private static File getOutputMediaFile() {
File mediaStorageDir = new File(
Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
"MyCameraApp");
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
Log.d("MyCameraApp", "failed to create directory");
return null;
}
}
// Create a media file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss")
.format(new Date());
File mediaFile;
mediaFile = new File(mediaStorageDir.getPath() + File.separator
+ "IMG_" + timeStamp + ".jpg");

return mediaFile;
}

通过这段代码从文件中获取Uri

Uri.fromFile(Filename);

关于java - 安卓相机 : Get Picture Uri after the photo is taken,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32344424/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com