1. 秦子帅的博客首页
  2. Android

Android-二维码扫描与生成二维码详解

点击标题下「蓝色微信名」可快速关注

原来写过扫码与生成二维码的功能,今天分享给大家。我是用zxing这个开源项目来实现扫码功能的。

效果图:

Android-二维码扫描与生成二维码详解

简介

zxing是一个开放源码的,用java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的接口。

zxing可以实现使用手机的内置的摄像头完成条形码和二维码的扫描与解码。

zxing可以实现条形码和二维码的编码与解码。

zxing项目地址:

https://github.com/zxing/zxing

Android-二维码扫描与生成二维码详解

Android-二维码扫描与生成二维码详解

一.扫描二维码并显示

集成

1.下载项目,在项目的build.gradle中添加依赖 com.google.zxing:core:3.3.0或者直接看我的DEMO复制我项目里的jar包

2.将整个包 com.google.zxing(包含路径)复制到自己的项目下。

3.复制res下的资源文件,注意不要覆盖掉了自己项目里的内容。可以将内容复制到对应的文件里边。

(1).raw下的beep.ogg。音频文件CaptureActivity中使用,若不想用则可以自行修改CaptureActivity。

(2).value下的ids.xml文件,value下的string文件内容,value下的color未见内容。

(3).对应的布局文件复制一下。

添加权限

调用

1.点击进入扫码页,设置一下请求码,为了回显扫码结果

2.扫描回显结果

3.扫描类主要用到了surfaceview,ViewfinderView,CameraManager 类以及,drawTextInfo,handleDecode方法。

  • 最主要的是—-在handleDecode方法中对扫码成功后的动作进行处理。

  • SurfaceView是视图(View)的继承类,这个视图里内嵌了一个专门用于绘制的Surface。surfaceview我会详细写一篇文章来解读它。

  • ViewfinderView   ZXing扫码窗口的绘制。

  • CameraManager getFramingRect()方法,定义了扫描的区域,可以自己修改。

  •  drawTextInfo是修改文本绘制的位置。


还有其他的核心类就不一一解读了,可以直接看它的源码。


注意:调整扫码框大小,要在CameraManager这个类getFramingRect()方法里进行修改,例如向上移动,获得topOffset的高度这改成:(screenResolution.y – (height+height/2)) / 2。

Android-二维码扫描与生成二维码详解

二.生成二维码


Android-二维码扫描与生成二维码详解


生成二维码两种方式

1.直接用zxing

2.可以自己写一个QRCodeUtil

然后用法如下:

当然也可以生成中间带图标的二维码,这里我就不写出来了 ,相信大家都开看懂。

我得DEMO下载地址:

http://download.csdn.net/my

如果没有的话,直接加我微信联系我。

时间仓促,如有错误,望见谅!

Android-二维码扫描与生成二维码详解

推荐阅读

 


MediaPlayer实现金额的语音播报功能


Android-国际化(多语言)切换详解及实例


Android底部导航总结


Android-二维码扫描与生成二维码详解

原文始发于微信公众号( 秦子帅 ):Android-二维码扫描与生成二维码详解

发布者:秦子帅,转转请注明出处:http://qinzishuai.cn/index.php/2017/10/19/bfe3723cc7/

联系我们

912241847

在线咨询:点击这里给我发消息

邮件:qzs531156@163.com

QR code