5

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

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

3 回答 3

5

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

请参阅 Android 文档:ACTION_IMAGE_CAPTURE

可以发送标准 Intent 操作以使相机应用程序捕获图像并返回它。调用者可以传递一个额外的EXTRA_OUTPUT来控制这个图像将被写入哪里。如果EXTRA_OUTPUT不存在,则在额外字段中将小尺寸图像作为 Bitmap 对象返回。这对于只需要小图像的应用程序很有用。如果EXTRA_OUTPUT存在,则将全尺寸图像写入 Uri 值EXTRA_OUTPUT

于 2012-06-13T06:38:54.953 回答
2

我认为它不可能看到下面的链接:

使用 ACTION_IMAGE_CAPTURE 以较低分辨率打开 Android 相机

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

如果即使您的相机分辨率设置为高,您也获得了小快照,那么请使用 Zed Scio 的方法。

于 2012-06-13T06:48:00.947 回答
1

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

public List<Camera.Size> getSupportedPictureSizes ()

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

public void setPictureSize (int width, int height)
于 2012-06-13T06:37:34.423 回答