前言
现在关于条形码和二维码的扫描已经很普片了.并且应用在很多软件,例如app store中软件的下载,亚马逊中条形码的扫描搜索等等.在****也可以集成如此的功能,应用在条形码扫描实体书,并在****中搜索电子版;好友之间通过二维码扫描方式,近距离的分享书籍等等.
第3方二维码jar中zxing可以支持很多种类型的二维码扫描以及支持对图片的扫描,下面进行简单的介绍.
1. Zxing源码包简化
从官网上下载的zxing demo包十分的庞大,里面夹杂你很多诸如分享,搜索的额外功能,有必要对这部分进行裁剪.

上图是裁剪过的类包,主要源码类介绍如下:
· CaptureActivity: 扫描器;
· CaptureActivityHandler:解码处理类,负责调用另外的线程进行解码;
· DecodeThread: 解码的线程;
· com.google.zxing.client.android.camera:摄像头控制包;
· ViewfinderView: 扫描框;
这些的类包主要负责摄像头的调用,条形码/二维码的扫描和解析,以及解码结果的返回.
其中,扫描界面如下图:
其中界面代码如下:

CaptureActivity初始化代码如下:
CameraManager是对摄像头的管理以及将会调用解码程序和控制ViewfinderView.
在修改的过程中,有很多是关于R 资源的问题,需要将vaues里面的两个xml资源文件colos.xml和ids.xml复制到项目中,以及layout_zxing.xml布局文件.
2. 扫描界面的调用和结果返回
外围模块只需如下代码即可调用扫描程序:
Intent intent=newIntent(TrackerActivity.this, CaptureActivity.class);
startActivityForResult(intent, REQUEST_CODE_ZXING);然后在自身的onActivityResult中即可对返回值进行判断.
if(requestCode==REQUEST_CODE_ZXING && resultCode == RESULT_OK){
String code=data.getStringExtra(Constant.CODE_ZXING_RESULT);
...
}
















