0

嗨下面是我如何启动我的相机。我总是得到 320 x 240 作为图像尺寸。关于如何设置相机以设备支持的最大尺寸拍摄图像的任何想法?

      File photo = null;
         String FILE_NAME ="20143";
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
if (android.os.Environment.getExternalStorageState().equals(
        android.os.Environment.MEDIA_MOUNTED)) {
    photo = new File(android.os.Environment.getExternalStorageDirectory(), FILE_NAME);
} else {
    photo = new File(getCacheDir(), FILE_NAME);
}    
if (photo != null) {
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
    selectedImageUri = Uri.fromFile(photo);
    startActivityForResult(intent, CAMERA_PIC_REQUEST);
}
4

1 回答 1

1

获得设备支持的所有尺寸

Camera.Parameters parameters = mCamera.getParameters();
List<Camera.Size> sizes = parameters.getSupportedPictureSizes();

我正在使用以下方法来获得最佳尺寸

private Camera.Size getBestPreviewSize(int width, int height,
        Camera.Parameters parameters) {
    Camera.Size result = null;

    for (Camera.Size size : parameters.getSupportedPictureSizes()) {
        Log.d("size: ", size.width + ":" + size.height);
        if (size.width <= width && size.height <= height) {
            if (result == null) {
                result = size;
            } else {
                int resultArea = result.width * result.height;
                int newArea = size.width * size.height;

                if (newArea > resultArea) {
                    result = size;
                }
            }
        }
    }

    return (result);
}

withint width, int height是surfaceHolder 的宽度、高度。

于 2013-04-04T04:49:28.943 回答