转自:https://blog.csdn.net/qq_1991/article/details/53586408?utm_source=blogxgwz2
1.预览拉伸的问题
原因:预览尺寸和surface view不一致。
解决方式:
针对于扫描时,二维码拉伸变形的问题,是因为zxing默认是针对横屏扫描的,所以,我们只需要改变x,y的计算,即横纵轴即可。此时,我们需要找到CameraConfigurationManager类:
找到findBestPreviewSizeValue方法:
将newDiff的变量计算代码改成如下:
int newDiff=Math.abs(newY - screenResolution.x) + Math.abs(newX - screenResolution.y);
2.近距离扫描二维码扫描不出
解决方式:
找到CameraConfigurationManager类的setDesiredCameraParameters(Camera camera)方法,将其中的代码注释,然后添加如下代码:
Camera.Parameters parameters = camera.getParameters();
List<Camera.Size> supportedPreviewSizes = parameters.getSupportedPreviewSizes();
int position = 0;
if(supportedPreviewSizes.size() > 2){
position = supportedPreviewSizes.size() / 2 + 1;// supportedPreviewSizes.get();
}else {
position = supportedPreviewSizes.size() / 2;
}
int width = supportedPreviewSizes.get(position).width;
int height = supportedPreviewSizes.get(position).height;
camera.setDisplayOrientation(90);
cameraResolution.x = width;
cameraResolution.y = height;
parameters.setPreviewSize(width, height);
setFlash(parameters);
setZoom(parameters);
camera.setParameters(parameters);
网友评论