ZXing改為豎屏后會有二維碼拉伸問題督弓,網(wǎng)上多數(shù)方法修改后會導致近距離識別慢的問題,還有些近距離識別的修改方法會導致拉伸乒验。
踩了多個坑后愚隧,找到下面的修改方法,對本人有效:
原博地址
ZXing版本:3.2.1(非當前版本未必有效)
主要修改CameraConfigurationManager中的getCameraResolution方法:
private static Point getCameraResolution(Camera.Parameters parameters, Point screenResolution) {
List<Camera.Size>list= parameters.getSupportedPreviewSizes();
Collections.sort(list, new Comparator<Camera.Size>() {
@Override
public int compare(Camera.Size lhs, Camera.Size rhs) {
// TODO Auto-generated method stub
if (lhs.width-rhs.width==0) {
return lhs.height-rhs.height;
}
return lhs.width-rhs.width;
}
});
for (Camera.Size size : list) {
System.out.println(size.width+" "+size.height);
if (Math.abs( size.width*1.0/size.height - 1.0*screenResolution.y/screenResolution.x )<0.1) {
return new Point(size.width, size.height);
}
}
return new Point(list.get(0).width, list.get(0).height);
}