Galaxy S4 Android自定义相机问题

时间:2015-02-03 17:11:41

标签: java android android-activity camera android-camera

我正在使用自定义相机开发应用。在摩托罗拉Moto G中一切正常,但是当我尝试保存Galaxy S4拍摄的照片时,需要这方面:

enter image description here

CameraSurface.java

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
    Camera.Size previewSize = determinePreviewSize(true, width, height);
    Camera.Parameters parameters = camera.getParameters();

    camera.setDisplayOrientation(90);


    parameters.setPreviewSize(previewSize.width, previewSize.height);


    List<Camera.Size> sizes = parameters.getSupportedPictureSizes();
    Camera.Size size = sizes.get(0);
    for (int i = 0; i < sizes.size(); i++) {
        if (sizes.get(i).width > size.width)
            size = sizes.get(i);
    }

    parameters.setPictureSize(size.width,size.height);

    parameters.set("display_mode","portrait");
    camera.setParameters(parameters);
    camera.startPreview();
}

1 个答案:

答案 0 :(得分:2)

我发现自己是上述问题的解决方案。

当您设置 setPreviewSize setPictureSize 时,必须具有相同的宽高比。如果您的方法 determinePreviewSize(true,width,height)返回宽高比为16:9的大小,则需要setPictureSize一个具有相同宽高比16:9的分辨率。

因此,解决方案是实现一种方法,从 getSupportedPictureSizes()中选择与 determinePreviewSize(true,width,height) <给出的宽高比相匹配的最佳分辨率< / p>