What is the best camera parameters for android camera opened in surface view

妖精的绣舞 提交于 2019-12-04 19:02:32

It has to do with the different preview sizes there are for the different phones.

The following method I used in a camera preview related android project:

Inside the surfaceCreated Method:

Camera camera = Camera.open(CameraInfo.CAMERA_FACING_BACK);
final Camera.Parameters params = camera.getParameters();
final Size size = getOptimalSize();
params.setPreviewSize(size.width, size.height);
camera.setParameters(params);

Inside the same activity:

private Size getOptimalSize() {
    Camera.Size result = null;
    final Camera.Parameters parameters = camera.getParameters();
    Log.i(Preview.class.getSimpleName(), "window width: " + getWidth() + ", height: " + getHeight());
    for (final Camera.Size size : parameters.getSupportedPreviewSizes()) {
        if (size.width <= getWidth() * PREVIEW_SIZE_FACTOR && size.height <= getHeight() * PREVIEW_SIZE_FACTOR) {
            if (result == null) {
                result = size;
            } else {
                final int resultArea = result.width * result.height;
                final int newArea = size.width * size.height;

                if (newArea > resultArea) {
                    result = size;
                }
            }
        }
    }
    if (result == null) {
        result = parameters.getSupportedPreviewSizes().get(0);
    }
    Log.i(Preview.class.getSimpleName(), "Using PreviewSize: " + result.width + " x " + result.height);
    return result;
}

Of course I should add, that the factor we used was: PREVIEW_SIZE_FACTOR = 1.30;

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!