二维及条形码类实例讲解

作者:创世魂

 

● 帮助说明

本类是基于“Zxing3.3”版本的开源库进行封装,用于条码和二维码的扫码和生成支持。

本类和“二维码类”的不同之处在于,本类扫码和生成的速度更快一些,适用于一些快速扫描的应用场景。

注意:本类位于“高级条码及二维码支持”模块中,欲使用本类需添加其模块。

 

 

● 扫描指定位图
● 扫描图像完毕(事件)

 

“扫描指定位图”帮助文档:

顾名思义,通过本方法可扫描指定位图类对象。

最终的扫码结果将会通过“扫描图像完毕”事件返回。

 

“扫描图像完毕”帮助文档:

调用“扫描指定位图”方法后会触发本事件,并返回两个参数。

参数1:返回是否扫描成功。

参数2:返回扫描结果。

 

代码编写如下图:

1、给“图片框1”的图片属性导入一张二维码图片。

2、定义类型为“二维及条形码类”的成员变量,名称随意。

3、添加按钮被单击事件,当“按钮1”被单击时,取出图片框的图片,并将其强制转换成“位图可绘制对象类”

4、通过此对象的“取位图()”方法,可取出位图对象,将其放到“扫描指定位图()”方法的参数中即可。

5、添加“扫描图像完毕”事件,判断是否扫描成功,如果成功则在编辑框显示扫描结果,否则弹出扫描失败提示。

 

运行结果如下图(GIF):

 

● 扫描指定图像

 

帮助文档如下图:

本方法共有一个参数“图片路径”,通过本方法可扫描本路径存储的二维码图片。

扫描结果同样也是在“扫描图像完毕”事件中返回。

 

代码编写如下图:

1、“按钮1”被点击后调用本方法,参数填写图片路径。

注:此处的“/sdcard/”同样可以表示存储卡根目录,如果不想使用“取外部存储空间根目录()”方法课使用本字符串代替。

2、添加“扫描图像完毕”事件,并返回扫描结果。

 

运行结果如下图(GIF):

 

● 启动扫描

 

帮助文档如下图:

打开帮助页可以看到本方法共有12个参数,分别可以设置扫码框的各种功能。

此处需要注意的就是“参数1”“参数2”中的注释,扫码结果会在“通知_获得返回数据”虚拟方法中返回。

默认的返回请求码为999.

 

代码编写如下图:

1、使用本方法时,可直接通过“二维及条形码类”调用,无需定义变量。

2、添加“通知_获得返回数据”虚拟方法后,首先判断“请求码”是否等于999,此数值要和方法参数中的数值一致。

3、然后判断“所返回结果信息”是否不等于空对象,用于防止扫码失败的情况。

4、最后就可以通过“所返回结果信息.取附带文本数据 (二维及条形码类.扫码结果)”取出扫码结果。

 

运行结果如下图(GIF):

 

常见问题:

如果扫码时出现此问题,是因为软件没有获取相机权限。

解决方案1:手动打开系统设置,找到应用权限并赋予当前软件相机权限。

解决方案2:动态申请相机权限,参考火山例程中“安卓6动态申请权限”例程。

 

● 生成二维码

 

帮助文档如下图:

顾名思义,通过本方法可生成二维码位图。

参数1:填写要生成的二维码内容。

参数2、3:可设置生成二维码的大小。

参数4:如果想让二维码拥有logo,填写本参数即可。

注意:本方法为静态方法,可直接通过“二维及条形码类”访问本方法。

 

代码编写如下图:

1、调用当前方法赋值给定义的位图类变量。

2、将位图显示在图片框中即可。

 

运行结果如下图(GIF):

在编辑框中随便输入一段文本后,点击“按钮1”二维码将会显示在图片框中。

 

● 生成条码

 

帮助文档如下图:

顾名思义,通过本方法可生成条码数据,返回位图类对象。

参数1:如果调用本方法是所处的类为窗口类,则本参数直接填写“本对象”即可,否则填写对应的窗口环境。

参数2:填写要生成的条码数据,注意不能填写中文。

参数3、4:填写生成的条码高度和宽度,通常情况下,条码的高度要填写一个较小的数值。

参数5、6、7:都是用来控制条码下方文本内容,根据自己的需求填写数据即可。

 

代码编写如下图:

本方法的使用和“生成二维码”一致,调用当前方法后填写对应参数即可实现条码生成。

 

运行结果如下图(GIF):

在编辑框中随便输入一段数字后,点击“按钮1”条码就会显示在图片框中。