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 に答える