问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Android二维码识别源码,可有多种实现方式

发布网友 发布时间:2022-04-20 04:04

我来回答

1个回答

热心网友 时间:2022-07-12 04:37

  这里简单介绍一下ZXing库。ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。Zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码。该项目可实现的条形码编码和解码。目前支持以下格式:UPC-A,UPC-E、EAN-8,EAN-13、39码、93码。ZXing是个很经典的条码/二维码识别的开源类库,以前在功能机上,就有开发者使用J2ME运用ZXing了,不过要支持JSR-234规范(自动对焦)的手机才能发挥其威力。
  下面是ZXing的demo运行,我这里创建了一个二维码,内容是我博客的网址,大伙可以用微信的扫一扫功能,试一下。就可以直接打开我博客。

  2、ZXing库主要类
  下面给大家介绍一下,ZXing库里面主要的类以及这些类的作用:
  CaptureActivity。这个是启动Activity 也就是扫描器。
  CaptureActivityHandler 解码处理类,负责调用另外的线程进行解码。
  DecodeThread 解码的线程。
  com.google.zxing.client.android.camera 包,摄像头控制包。
  ViewfinderView 自定义的View,就是我们看见的拍摄时中间的框框了。
  
  3、使用ZXing生成二维码
  下面针对二维码生成和解析做个简单介绍,至于详细的使用方法,建议大家还是自己看看源码,使用起来很简单,不过这个开源项目的代码,值得好好看看。首先给出二维码生成的方法:
  View Code
  上面就是二维码生成的方法接口,如果你只是使用者方法,很简单,只要传入一个URL即可,就像我截图里面一样,传入一个合法的网址即可。或者像现在一些移动APP的推广,把APP下载地址转为二维码,只要扫一下就可以下载相应的APP。这个也是目前比较流行的APP的推广方式。
  上面代码做的事情不多,主要是调用ZXing库里面QRCodeWriter().encode的方法对我们传进去的URL进行编码,具体如何编码,这个我这里就不详细说,有兴趣可以看ZXing的源码。文章最后会给出ZXing的源码和例子代码。
  
  4、扫描二维码获取信息
  扫描获取二维码信息的工作稍微复杂一些,主要是需要编写Camera的使用,这个跟我们一般使用Camera一样,需要使用Surfaceview作为预览,这一部我这里就不说了,这个应该不是太复杂。对于使用过Camera做预览的朋友,应该是挺简单的事情。获取二维码数据的关键处理是在Camera的自动对焦回调函数哪里,调用ZXing的解码接口。
  View Code
  这里稍微多说一句,由于解码需要一定时间,所以ZXing的解码调用,都是使用了Handler作为线程通信机制,解码的工作都是放在独立线程里面使用的,如果你直接在主线程解码,恐怕ANR问题是避免不了。
  View Code
  上面是解码的线程处理不同状态的时候需要注意的地方,我们这里只看获取图像成功的地方,成功获取图片解码的实在DecodeThread里面实现,DecodeThread里面解码成功后,会把数据序列化,然后保存到Bundle里面,我们可以直接通过Bundle的序列化,获取到图片数据。同时会把解码后的结果保存到MSG里面,然后就可以根据实际情况进行处理,例如上面代码,解码成功后,会调用一个处理函数:
  View Code
  上面就是整个二维码的解码流程,里面因为涉及很多Camera的使用,所以你如果需要使用二维码识别,需要注意一下你的程序需要申请下面的权限,一般的Camera使用以及Camera的自动对焦等。
  View Code
  5、结语
  上面就是生成和识别二维码的关键流程和代码,有兴趣的朋友可以自己查看ZXing的源码,里面有很多图像分析的知识可以学习。具体使用也可以参考我下面给出的Demo。二维码对于现在移动开发来说很是很常用的技术,所以有空可以了解一下,说不定什么时候就用上了。另外,ZXing库除了二维码外,其实对于条形码也是支持的,只是我这里没有介绍。有需要的自己去看看源码即可。
转载
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
人教版小学英语课本哪里能下载到MP3 小学英语同步听力音频去哪里找 去陆丰旅行,要提前做好什么准备? 请教高手:苹果6s能不能安装两个微信?谢谢指点! 对于一个在女性内衣店工作的男性,你们怎么看待 ...湖是世界最深和蓄水量最大的咸水湖 B.死海是世界最低点 C.马来群 ... ...世界最大的湖泊___世界上人口最多的国家___世界上面积最大... 世界最深和蓄水量最大的湖是什么?世界最低点是哪?世界面积最大的高原... 尚赫净水器滤芯 如何清洗尚赫 android中怎么对二维码进行解码 急!!求一个Android 平台的JAVA做的二维码解码小... 二维码解码软件,解码器,有好用的吗? 二维码加密了,知道密码,怎么解码呀?手机上有这... 手机二维码解码软件怎么用的 小米MIX2充电怎么才 有什么办法可以治疗颈椎(日常小方法) 男科在线咨询 武汉市青山区所有街坊的具体位置! 武汉市有哪13个辖区?又分别管辖哪些街道? 国内哪家医院最擅长治疗眼底黄斑病变? 北京市朝阳区各街道办事处详细的所管辖范围? 国内治疗视神经萎缩最好的医院?? 中国哪的医院治疗泪道堵塞最好? 治疗青光眼最好的医院? 国内治疗青光眼最好的医生和医院在哪里 包头公交23路路线查询 夜盲症怎样可以完全治好 中国比较好的治疗玻璃体混浊的眼科医院有哪些? 急!急!!开学就要上初中了,请问:西安市26中,... 二维码在线解码工具推荐一个? 这种二维码用什么软件解码 Android ZXing 二维码,编码和解码的算法是什么算... 汽车二维码解码器下载安装 如何把解码二维码 android 二维码解码的时候会扫描,三个定位点 ,这... 手机APP中的二维码应用解码是在手机端做还是服务器... 诺基亚N8如何安装二维码解码器 亲,急求二维码的解码器哦。。 如何解码信息 二维码如何解码 为什么我用二维码解码器解出来的网址点进去是下载... 微信互相删除好友怎么找回 给朋友拍生日聚会的短视频,请问有没有好用又免费A... 大家有免费的短视频制作软件推荐吗?听说简影APP比... 小学生社会实践活动作文怎么写 手机拍视频软件有哪些? 小学生个人暑期社会实践作文 跪求好用又免费的短视频制作APP,给公司拍短视频用! 怎样进行小学数学实践性作业的设计思路