我有一个"奇怪的"问题!我使用3-4个设备进行测试,但我对Samsung Tab | Pro(SM-T230)有问题。当我试图用后置摄像头拍照时,它会在setPictureSize方法上崩溃(前置摄像头没问题)。
我真正想要做的是在预览和捕获的图像上保持相同的宽高比。因此,每次我正在切换时都在进行此配置。
Camera.Parameters parameters = mCamera.getParameters();
Camera.Size size = getBestPreviewSize(screenWidth, screenHeight);
parameters.setJpegQuality(80);
parameters.setPreviewSize(size.width, size.height);
parameters.setPictureSize(size.width, size.height);
mCamera.setParameters(parameters);
修改
getBestPreviewSize()方法
private Camera.Size getBestPreviewSize(int width, int height) {
Camera.Size result=null;
Camera.Parameters p = mCamera.getParameters();
for (Camera.Size size : p.getSupportedPictureSizes()) {
Log.i("PictureSize", "Supported Size: " +size.width + " height : " + size.height);
}
for (Camera.Size size : p.getSupportedPreviewSizes()) {
Log.i("Preview Size", "Supported Size: " +size.width + " height : " + size.height);
if (size.width<=width && size.height<=height) {
if (result==null) {
result=size;
} else {
int resultArea=result.width*result.height;
int newArea=size.width*size.height;
if (newArea>resultArea) {
result=size;
}
}
}
}
return result;
}