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 回答