最近在开发过程中,需要用到二维码扫描,然后最火的当然就是基于Zxing实现二维码扫描,其中很多人都使用了【相关资料1】的源码,但是存在部分问题,后面我会修改调整后,再将代码贴出去。不过后面我还是选择了【相关资料4】的方法,毕竟前者是2013-08-21写的博客,使用的是2011年的zxing.jar,后者是 2016-03-31写的博客,使用的是2014年的zxing.jar,可比性很明显!
█ 【相关资料1】存在的问题:
● 扫描的实物:
● 与微信扫一扫相比,明显存在以下几个问题:
1.扫描图片有纵向拉伸变形
2.当手机屏幕的分辨率足够高时,扫描框就显的很小
3.提示信息在屏幕水平居中
4.即使二维码都在扫描区域框中也不一定能扫出,要稍微再距离远点,让二维码更居中
5.扫描框中焦点如何去掉
● 解决方法:
1.默认是横屏扫描,因此出现图片拉伸问题
修改方法有3种,在CameraConfigurationManager类里面的findBestPreviewSizeValue或initFromCameraParameters方法中修改相关参数:
2.当手机屏幕的分辨率足够高时,扫描框就显的很小
修改方法有2种以上,在CameraManager类里面的
3.提示信息在屏幕水平居中
之前有找到几种方法,不过现在只保留了其中最短的一种方法,简单说就是算出要显示的字符串的长度,然后计算出要显示的起点位置即可,方法如下:
4.远距离远才能识别二维码
将zxing.jar换成最新的zxing.jar包应该也可以,据说把zxing.jar换成了core.jar也可以,有时间的朋友可以去试试。
5.扫描框中焦点如何去掉
去除小黄点很简单,只要在color.xml配置文件里面修改possible_result_points为透明色:#00000000。
● 最终的扫描结果:
PS 1:最后,由于扫描框变大,会导致传输的Bitmap对象过大而引起闪退等问题,所以要么不传输bitmap,要么对bitmap进行压缩处理!
PS 2:如果还是出现不能近距离扫码的话,可以参考【相关资料6】提到的修改CameraConfigurationManager类中的setDesiredCameraParameters方法。
相关下载资源连接:http://download.youkuaiyun.com/detail/ljb568838953/9690939
█ 相关资料:
1.基于Zxing实现二维码扫描
参考:Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果 - Mobile Internet developer - 博客频道 - youkuaiyun.com
http://blog.youkuaiyun.com/xiaanming/article/details/10163203
2.基于ZBar实现二维码扫描
参考:Android开发学习之基于ZBar实现微信扫一扫 - 踏雪无痕 - 博客频道 - youkuaiyun.com
http://blog.youkuaiyun.com/qinyuanpei/article/details/17726147/
3.基于Zxing实现二维码扫描的补充
参考1:[android总结]Zxing二维码扫描图片变形android-robot新浪博客
http://blog.sina.com.cn/s/blog_8a86f4dd0102whf2.html
参考2:android使用zxing扫描界面全是白色以及更改显示文字屏幕居中 - wblyuyang的专栏 - 博客频道 - youkuaiyun.com
http://blog.youkuaiyun.com/wblyuyang/article/details/50847814
参考3:关于zxing二维码扫描 远距离扫描才能成功 - a1044101428的博客 - 博客频道 - youkuaiyun.com
http://blog.youkuaiyun.com/a1044101428/article/details/51460559
4.基于Zxing实现二维码扫描的原理
Android二维码扫描开发(一):实现思路与原理
参考:http://mp.weixin.qq.com/s?__biz=MjM5NDkxMTgyNw==&mid=405489196&idx=1&sn=60f385f5d3fcb97ce4813a372028817a&scene=0#wechat_redirect&utm_source=tuicool&utm_medium=referral
5.AS项目转到eclipse中方法
AS项目转到eclipse中方法 - 请叫我码农怪蜀黍 - 博客园
参考:http://www.cnblogs.com/wangfeng520/p/5650708.html
6.基于Zxing实现二维码扫描的补充2
Google zxing实现二维码扫描完美解决方案
参考:http://blog.youkuaiyun.com/u013718120/article/details/51683125
7.基于Zxing实现二维码扫描的两个github项目
https://github.com/bingoogolapple/BGAQRCode-Android
https://github.com/dm77/barcodescanner