Galaxy S4 Android 自定义相机问题
Galaxy S4 Android Custom Camera Issue
我正在开发一个带有自定义相机的应用程序。在摩托罗拉 Moto G 中一切正常,但当我尝试保存由 Galaxy S4 拍摄的照片时,出现以下问题:
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();
}
我找到了解决上述问题的方法。
当您设置 setPreviewSize 和 setPictureSize 时,它们 必须 具有相同的 纵横比。如果您的方法 determinePreviewSize(true, width, height) returns 具有纵横比 16:9 的尺寸,您需要设置 PictureSize 具有相同纵横比 [=30] 的分辨率=].
因此解决方案是实现一种方法,该方法从 getSupportedPictureSizes() 中选择与 determinePreviewSize(true, width,身高)
我正在开发一个带有自定义相机的应用程序。在摩托罗拉 Moto G 中一切正常,但当我尝试保存由 Galaxy S4 拍摄的照片时,出现以下问题:
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();
}
我找到了解决上述问题的方法。
当您设置 setPreviewSize 和 setPictureSize 时,它们 必须 具有相同的 纵横比。如果您的方法 determinePreviewSize(true, width, height) returns 具有纵横比 16:9 的尺寸,您需要设置 PictureSize 具有相同纵横比 [=30] 的分辨率=].
因此解决方案是实现一种方法,该方法从 getSupportedPictureSizes() 中选择与 determinePreviewSize(true, width,身高)