我想在列表视图中获得支持的相机分辨率预览尺寸和长宽比,就像我在图片中所示。目前,我正在执行此操作,仅向我显示分辨率宽度和高度的列表,但我也想显示宽高比。
public void find_camera_resolution()
{
Camera mCamera = Camera.open();
Camera.Parameters params = mCamera.getParameters();
List<Camera.Size> sizes = params.getSupportedPreviewSizes();
int widths[] = new int[params.getSupportedPreviewSizes().size()];
int heights[] = new int[params.getSupportedPictureSizes().size()];
Camera.Size mSize;
for (Camera.Size size : sizes) {
Toast.makeText(this,"Available resolution: "+widths.length+" "+size.height,Toast.LENGTH_LONG).show();
mSize = size;
}
}
长宽比就是分辨率的比率。因此,您(仅)需要找到宽度和高度的Greatest Common Divisor,将两个值除以除数,然后得出比率。
例如1600x720-> GCD:80-> 1600/80:20、720 / 80:9->高宽比:20:9
[有很多现有的算法可以解决最常见的公约数问题,并且已经存在一些可以使用的实现。