前言

现在关于条形码和二维码的扫描已经很普片了.并且应用在很多软件,例如app store中软件的下载,亚马逊中条形码的扫描搜索等等.在****也可以集成如此的功能,应用在条形码扫描实体书,并在****中搜索电子版;好友之间通过二维码扫描方式,近距离的分享书籍等等.

第3方二维码jar中zxing可以支持很多种类型的二维码扫描以及支持对图片的扫描,下面进行简单的介绍.

1.  Zxing源码包简化

从官网上下载的zxing demo包十分的庞大,里面夹杂你很多诸如分享,搜索的额外功能,有必要对这部分进行裁剪.

python连接条形码打印机 打印条形码_二维码

上图是裁剪过的类包,主要源码类介绍如下:

·        CaptureActivity: 扫描器;

·        CaptureActivityHandler:解码处理类,负责调用另外的线程进行解码;

·        DecodeThread: 解码的线程;

·        com.google.zxing.client.android.camera:摄像头控制包;

·        ViewfinderView: 扫描框;

 

这些的类包主要负责摄像头的调用,条形码/二维码的扫描和解析,以及解码结果的返回.

其中,扫描界面如下图:

 

其中界面代码如下:

python连接条形码打印机 打印条形码_xml_02

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