现在的移动应用中几乎都少不了扫码功能,这已然成为现在最便捷(个人认为)的支付方式和信息共享方式,比如:使用微信、支付宝扫码付款,支付宝扫码使用共享单车等,都是二维码的使用,关于二维码的组成及部分这里不再做赘述,接下来上资源:
完整ZXing库的地址(这个是由原作者写的):https://github.com/zxing/zxing
部分ZXing库(由其他开发人员从完整ZXing中提取出关于android部分的资源文件)
改造ZXing库(这个是我根据自己的喜好改写了作者原来的那个样式,我觉得原来那个自己不是特别喜欢,另我给添加了一个闪光灯的效果)
部分ZXing库和改造ZXing库地址:https://github.com/QianLiStudent/MyStudyDemoRepository
Tip:
这两个库引用其一到所要引用的项目中,然后就可以使用了。具体的扫码、解析、编码操作继续看下文。
ZXing库作者在写的时候帮我们把相机调出来了,所以我们可以直接用。一般来说我们扫描后返回的信息一般是返回上一界面,这时候我们的界面跳转应该采用startActivityForResult(intent,requestCode),并复写onActivityResult(requestCode,resultCode,intent);如果是将扫描后得到的信息跳转到新的界面显示,那就直接startActivity(intent)。这里要注意,作者他返回数据的形式是以返回到前一界面来写的,所以我们需要根据自己的业务需求来改动作者的代码,改动的地方在CaptureActivity.java文件中的handleDecode代码块那里。我在改动的库中添加了一个新界面,用于承接扫码解析后的信息,并使用WebView控件加载URL地址,跳转到URL地址的页面,若非URL地址,则直接显示其内容。
接下来讲讲创建二维码:创建二维码很简单,我们只要从作者写的库中直接调用
其后面的参数依次是编码成二维码的字符串信息、二维码图片的宽、高、图标(打开你微信,点击自己名片看看自己的二维码中间,那个图标就是这里所说的图标)。因为返回的是位图Bitmap,所以我们还需要让它展示在控件ImageView中。这时通过扫码我们会发现得到的信息就跟二维码生成器是一个效果,至于怎么展示你的信息就是你自己的事了。
好啦,这就是今天所要讲的ZXing开源库的关于扫码、解析、编码的过程。这里涉及的东西不多,因为作者做的很周到,给我们省了很多麻烦,但是实际开发中要是要根据需求来做相关部分的定制,但整体的思路应该不会差很多。
大家可以根据自己的喜好来修改某些样式,同时欢迎大家使用部分ZXing库和改造ZXing库,对比一下我改动的ZXing库的效果和原来那个部分ZXing的效果。