在android中以编程方式更改相机分辨率设置

时间:2012-06-13 06:29:23

标签: android android-intent android-camera high-resolution

我正在使用以下代码打开相机。是否可以通过编程方式将摄像机分辨率设置为高?

private void openDefaultCameraApp() {
    Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    startActivityForResult(i, CAPTURE_PHOTO_CONSTANT);
}

3 个答案:

答案 0 :(得分:3)

您必须在意图中添加MediaStore.EXTRA_OUTPUT。在额外的情况下,您必须为要保存的图片指定一个Uri。这将保存全分辨率图像,否则,它只会捕捉一个小图像。

请参阅Android文档:ACTION_IMAGE_CAPTURE

可以发送标准意图操作,让相机应用程序捕获图像并将其返回。 调用者可以传递额外的EXTRA_OUTPUT来控制该图像的写入位置。如果EXTRA_OUTPUT不存在,则在额外字段中返回小尺寸图像作为Bitmap对象。这对于只需要小图像的应用程序非常有用。如果EXTRA_OUTPUT存在,则完整尺寸的图像将写入Uri值EXTRA_OUTPUT

答案 1 :(得分:2)

我认为不可能看到以下链接:

Open Android Camera in lower resolution with ACTION_IMAGE_CAPTURE

您必须从相机预览屏幕手动设置分辨率。

即使您的相机分辨率设置为高,如果您的拍摄也很小,请使用Zed Scio的方法。

答案 2 :(得分:1)

您可以使用this方法获取所有受支持的图片尺寸。

public List<Camera.Size> getSupportedPictureSizes ()

您将获得List支持的图片尺寸。然后,您可以使用this方法设置您想要的大小。

public void setPictureSize (int width, int height)