基于google公司的zXing项目的二维码扫描实现

weberzxing的主要目录结构,移植到自己的项目下是非常简单的。只需要将com.zxing.camera包,com.zxing.decoding包,com.zxing.image包,com.zxing.view包的内容拷贝到你的目录下就可以了。


值得借鉴的内容:http://www.eoeandroid.com/thread-200965-1-1.html

包里面有一个MipcaActivityCapture,也是直接引入我之前项目的代码的,这个Activity主要处理扫描界面的类,比如,扫描成功有声音和振动等等,主要关注里面的handleDecode(Result result, Bitmap barcode)方法,扫描完成之后将扫描到的结果和二维码的bitmap当初参数传递到handleDecode(Result result, Bitmap barcode)里面,我们只需要在里面写出相对应的处理代码即可,其他的地方都不用改得,我这里处理扫描结果和扫描拍的照片


但是要想做出像微信那样只的扫描框,紧紧上面的代码是没有那种效果的,我们必须重写com.mining.app.zxing.view包下面的ViewfinderView类,微信里面的都是用的图片,我是自己画出来的,代码注释的比较清楚,大家直接看代码吧,相信你能理解的,如果你要修改扫描框的大小,去CameraManager类里面修改


这里解释一下各个类的作用:


  • CaptureActivity。这个是启动Activity 也就是扫描器(如果是第一安装,它还会跳转到帮助界面)。

  • CaptureActivityHandler 解码处理类,负责调用另外的线程进行解码。

  • DecodeThread 解码的线程。

  • com.google.zxing.client.android.camera 包,摄像头控制包。

  • ViewfinderView 自定义的View,就是我们看见的拍摄时中间的框框了。


这里要引进google的内核包:core并build path一下:

往往这里爱报一个错误

onversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/google/zxing/BarcodeFormat;这个错误,是因为刚开始的时候我放了两个JAR包进去,删除一个就行了,大家自行修改


这里要引进3个布局文件,可以自己修改:


这里要引进了一个解析完成后震动的音频文件:

这里要添加一个ids文件,这是google公司提供项目自带的一个内容:


顺便将第二个activity注册一下:


最后就是给项目添加权限,操作摄像头是需要权限的:










你可能感兴趣的:(基于google公司的zXing项目的二维码扫描实现)