首页 > 文章

一扫天下——ZXing使用全解析

zxing

一扫天下——ZXing使用全解析

二维码如今已经烂App了,无论什么App。没有二维码就好像低人一等了。

所以,在自己的项目中集成二维码功能还是非常有必要的。

网上非常多都是基于ZXing2.3的。可是如今都3.1了,改了非常多bug,也进行了非常多优化。最好按本文弄一下。

參拜ZXing

ZXing的github地址:
https://github.com/zxing/zxing

通过git clone git@github.com:zxing/zxing.git 命令我们能够把整个ZXing项目拉取下来。

然而这并没有什么卵用。

由于ZXing的项目是非常庞大的。功能也非常多。可是我们不须要这么多,我们仅仅关心Android部分的。

获得ZXing的祝福之jar

在使用ZXing之前。我们须要先编译它的jar包,我们能够看见源码文件夹中有一个core的文件夹,我们能够把这个文件夹导入eclipse作为一个javaproject。

最后通过export导出一个jar包。

获得ZXing核心功能

我们须要把核心的扫码、解码功能抽取出来。这一步。网上已经有非常多人做过了。仅仅是大部分都是基于第一个抽ZXing的人,而那个是基于ZXing1.5、2.3的,所以。记得要进行Update哦。

那么我们怎样获得最新的ZXing代码呢,非常easy,找一个旧的。然后把最新的代码一个个copy过去替换就好了,当然,还是会有一些问题,只是一步步解决就能够了。都不是非常大的问题。

饭来张口

这里为大家也提供一个封装好的最新的ZXing Lib:

https://github.com/xuyisheng/ZXingLib

基于ZXing3.1封装。包括了最新的jar包和代码。

解析

CaptureActivity

ZXing暴露的调用Activity。在handleDecode方法中对扫码成功后的动作作处理。

ViewfinderView

ZXing扫码窗体的绘制,原始的ZXing使用这样的方式去绘制,在上面提供的开源库中,作者将扫描框的绘制直接抽取到了XML文件里,这样改动起来更加方便了。

CameraConfigurationManager

改动横竖屏、处理变形效果的核心类。

在public void setDesiredCameraParameters(Camera camera, boolean safeMode)方法中(读取配置设置相机的对焦模式、闪光灯模式等等),能够将扫描改为竖屏:

即:
在方法最后加上:

/** 设置相机预览为竖屏 */ camera.setDisplayOrientation(90);

就可以。

在public void initFromCameraParameters(Camera camera)方法中(计算了屏幕分辨率和当前最适合的相机像素),我们能够对改动为竖屏扫码后,由于像素信息点没有对调造成图像扭曲变形进行改动。

即:

在Log.d(TAG, “Screen resolution: ” + screenResolution);后加上例如以下的代码:

/** 由于换成了竖屏显示,所以不替换屏幕宽高得出的预览图是变形的 */ Point screenResolutionForCamera = new Point(); screenResolutionForCamera.x = screenResolution.x; screenResolutionForCamera.y = screenResolution.y; if (screenResolution.x < screenResolution.y) { screenResolutionForCamera.x = screenResolution.y; screenResolutionForCamera.y = screenResolution.x; }

最后,将screenResolution替换为screenResolutionForCamera:

cameraResolution = findBestPreviewSizeValue(parameters, screenResolutionForCamera);

DecodeHandler.decode

ZXing解码的核心类

CaptureActivityHandler

当DecodeHandler.decode完毕解码后,系统会向CaptureActivityHandler发消息。假设编码成功则调用CaptureActivity.handleDecode方法对扫描到的结果进行分类处理。

最后

本文的Github中已经包括了前面所提到的全部改动(横竖屏、扭曲变形),用最新的ZXing代码进行了update,同一时候提供了编码、解码方法。而且将扫码界面抽取成XML(感谢开源作者),方便拓展。

https://github.com/xuyisheng/ZXingLib
https://github.com/xuyisheng/ZXingLib
https://github.com/xuyisheng/ZXingLib

重要的东西发三遍。

以上。

  • 独孤天下宇文邕怎么死的
  • 愿天下有情人终成眷属这句话出自何处
  • 天下郡国利病书是谁写的
  • 天下第一奇山是哪一座山 天下第一奇山的简介
  • 金鸡一唱天下白是什么属相,雄鸡一唱天下白什么意思
  • 天下谁人配白衣出原句 天下谁人配白衣出原句是什么
  • 桂林山水甲天下的下一句
  • 乌鸦一般黑:天下的乌鸦一般黑指的什么
  • 失信不立的意思:失信不立诚信者天下之结也小信成则大信立描写的是
  • 我善养吾浩然之气:我善养吾浩然之气。天下之本在国,国之本在家,家之本在身,是什么意思
  • 本文地址:https://www.ytsfc.com/show-1-18283-0.html

    下一篇:5cm有多长
    • 大结局为什么萧炎杀药老

      大结局为什么萧炎杀药老

      原著大结局为什么萧炎杀药老​1、原因就是萧炎自身的原因了。萧炎是远古八族之萧族的后人,萧炎手中的古玉是打开古帝遗迹的关键。收集古玉是药老他们一直的使命。所以,药老追...

    • 车标志识别图片大全  【图片】

      车标志识别图片大全 【图片】

      每一辆汽车都有自己的品牌标志,用于告诉大家它们的生产厂家。下面我们来认识一下一些比较常见的汽车标志,有不认识的小伙伴赶快记下来!中国汽车最著名的要属:奇瑞、吉利、长城、...

    • 达咩啥意思:达咩为什么不能随便说

      达咩啥意思:达咩为什么不能随便说

      哒咩什么意思达咩的意思是不行,不许,不可以的意思。达咩是日语的中文读音译字,是一句比较生活化的日常用语。日语常用语还有,晚安对长辈:お休みなさい(哦呀斯米那赛),再见:さようなら...

    • 水浒传人物介绍:水浒传15个人物介绍

      水浒传人物介绍:水浒传15个人物介绍

      水浒传15个人物介绍1, 及时雨,呼保义,宋江:及时雨:总在别人需要的时候出现 2,玉麒麟,卢俊义 ,麒麟是神兽,是百兽之长 富甲天下,仗义疏财3,智多星,吴用 智多星,聪明,智慧多多的上界星辰...

    评论底部pc
    评论底部 m

    豆豆的家

    http://www.ytsfc.com/

    '); })(); | 京ICP1234567-2号

    Powered By 电视大师网 XXX公司

    使用手机软件扫描微信二维码

    关注我们可获取更多热点资讯

    感谢小豆豆技术支持