原生二维码扫描,你在用吗?

  其实,网上有好多关于原生二维码扫描的教程,但是,我还是想自己记录一下自己再写这个原生二维码扫描及图片扫描的一些过程,及遇到的一些问题。

 话不多说,直接进入正题,在没有原生二维码扫描的时候,我们大家都在用ZBar或者ZXing等第三方的二维码扫描库,接入简单,API也不复杂,集成起来也很方便,但是,就是感觉扫码速度太弱,还有就是ZBar这个库也不更新了,ZXing暂没有详细了解。(我在接触我们项目的时候,我们用的是ZBar,😊),由于之前对原生有所了解,索性就对产品说,更换原生,然后自己开始走上这条不是那么崎岖的道路,😀。

下面咱们就看一看我的代码,如有问题,欢迎指正,首先是我是把它封装成了一个View, 咱们先看的就是这个View的Public Method:

其中XPClickButtonType这个枚举用来区分View上面的几个button的,关于这几个简单的api,我就不多介绍了,都有注释的😯。

在一个就是关于这个View的两个代理方法,其实也很简单啦,

分别解释一下,第一个是点击View上面的button事件需要做的操作, 第二个就是关于二维码扫描结果的一个代理方法,是不是很简单?😊

下面就是具体m文件的实现了,其实都大同小异,主要说一下下面代码,就是限制扫描区域的,

详细代码可参考链接:点我呀。里面很多代码,可能都不需要的,毕竟每个公司的需求都不一样的。这个就那么多啦。

关于这个View的使用就是更简单啦,在cotroller里面实现这几行代码就行啦,


第一张图,懒加载这个View,第二张图,不要多说,你懂得,🙂。

下面就是这个View第二个代理的实现,这个很重要的哦,你想要的结果都在这里,

关于原生二维码扫描就基本上结束了,很简单的吧,下面来看一下扫描图片中的二维码,这里呢,我封装了一个类,下面就核心的代码说一下:

这里其中有个方法,由于现在的手机像素也来越高,拍出的照片也越来越大,导致图片中的二维码,没法识别,于是就写了一个方法来等比缩小图片的大小(关于等比例缩小图片的方法我就不用说了吧,知道的更好,不知道的度娘啊),已达到扫码的目的,(这个可能会有bug,目前我还没有发现,希望发现的告诉我哈,🙂),想必老司机已经知道是那个方法了吧。

其他就没有什么难度,都是一些简单的封装,我就不上代码了,希望大家自己封装封装,具体怎么用还很简单,这里就不赘述喽,好了,本人水平有限,若有问题,欢迎指正😯。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,503评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,292评论 4 61
  • 就是觉得亲近的人不应该这样 何必争锋相对 伶牙俐齿 总是要适应人与人之间的不同 不都是有点自私啊 总是自以为是的觉...
    嘿哈y阅读 510评论 1 1
  • 我有个习惯,有几分钟空闲时间但又不知道干什么的时候,就拿起手机看关于“好书推荐”、“书单分享”这类的推送,遇到感兴...
    一个突然爱唠叨的人阅读 522评论 0 0
  • (图片来源自网络) 某天,一位教培的同学和我聊起有没有专门讲绘本给小些的孩子的课,我笑言,妈妈和孩子捧一本绘本书一...
    晨光微晓阅读 1,917评论 0 4