3

SurfaceViewを使用しPictureCallBackて、サポートされている最高の解像度で写真を撮りたいです。

私のGalaxy Nexusで機能する構成は次のとおりです。

    Camera.Parameters params = camera.getParameters();
    List<Camera.Size> sizes = params.getSupportedPictureSizes();
    Toast.makeText(MainActivity.this,"Supported Sizes: " + sizes,Toast.LENGTH_LONG).show();

    params.setPictureSize(2592, 1944);
    params.setJpegQuality(100);

    camera.setParameters(params);

私のデバイスでは 2592 x 1944 が最高の解像度ですが、デバイスでvar sizes最高の解像度を得るにはどうすればよいですか?

お手伝いありがとう!

4

1 に答える 1

4

リストをループし、高さと幅を掛けてピクセル数を取得し、最大インデックスの変数を保持します

int max = 0;
int index = 0;

for (int i = 0; i < List.size(); i++){
     Size s = List.get(i);
     int size = s.height * s.width;
     if (size > max) {
         index = i;
         max = size;
     }
}
params.setPictureSize(List.get(index).width, List.get(index).height);
于 2012-11-22T22:08:12.057 に答える