集成zxing二维码,预览变形问题。

**转载【http://blog.csdn.net/qq_1991/article/details/53586408】**

在集成zxing二维码时经常会遇到各种问题,比较常见的有下面两个。


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);

参考博文:

http://blog.csdn.net/xiaanming/article/details/10163203

http://m.blog.csdn.net/article/details?id=51683125

感谢作者,完美解决了问题。

为方便以后使用,整理出来一个demo,欢迎大家指正。

demo地址:

http://download.csdn.net/detail/qq_1991/9709334 


demo运行效果:




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值