Adroid zxing 二维码3.1集成

声明:博文为原创,文章内容为,效果展示,思路阐述,及代码片段。

转载请保留原文出处“http://my.oschina.net/gluoyer/blog”,谢谢!

引子:最近项目中用到二维码,找到了最新的3.1版本 zxing-GitHub,进行了集成、调整,同时笔记以备忘。

展示应用下载:程序猿媛2.1

求点击:博客访问9.9k+了,距离初步期望1w很近了。   一个多月的封闭开发也终于结束了,成都也雨后天晴出太阳。

    特此版本去掉了下载时需要积分的情况,网站之外的tx们,方便的话,随手点一下“花佟林雨月

实现效果:

相关博文很多,生成jar包,简化代码。度娘一下就有了。 感觉需要必要笔记,是发现:

  • 以1.6版本居多,据说3.1对4x支持更好些。
  • 简化后,对扩展比较麻烦。
  • 修改竖屏后,修改的地方找起来比较麻烦。

未使用简化版本,直接引用zxing源码

由于网上的简化版本,对功能扩展比较麻烦,因此,直接将zxing放到了工程目录下的extras/zxing下,只在项目中加入了目录,复制、修改了必要的文件,其他均引用源码文件

修改竖屏后所需调整

集成过程中,发现网文提到的修改竖屏,还是有点分散的,找起还是有点麻烦。故在CameraConfigurationManager加了一个标识方法:isPortrait(),返回true

例如,DecodeHandler.java的decode方法中需要调整,如下条件实现:

其他需要修改的地方,也如此使用isPortrait()条件,所以,只需要看下isPortrait()的Call Hierarchy,就比较清晰得看到所需修改。

同时,返回false,就可以恢复到源码处理。

绘制扫描框

根据项目需求,需要重新绘制扫描框框,主要在ViewfinderView.java实现绘制方法,同样条件控制,drawScanFrame局部如下:

灯光的设置

根据源码中,音量键对灯光的开关,添加了新接口,支持标题右上角对灯光的控制:

CameraManager.java中:

以及CameraConfigurationManager.java中:

在Activity中进行必要的调用处理即可。

QrCaptureActivity 中扫描成功的处理

根据实际需求,扫描成功后,跳转并将数据传递给新页面,因此,只在handleDecode方法中,

在注释信息下面,将新页面的跳转就可以了。

如果有其他需求,也在这里自行处理,应该就没有问题了。

另外,运行zxing源码,可以看到它有个设置页面,也可以根据需求,集成该设置页面,或修改R.xml.preferences中的配置即可。

全文完,希望对您有帮助,谢谢!

展示应用下载:程序猿媛2.1

转载请保留原文出处“http://my.oschina.net/gluoyer/blog”,谢谢!

程序猿媛 九:Adroid zxing 二维码3.1集成(源码无删减)的更多相关文章

  1. Atitit zxing二维码qr码识别解析

    Atitit zxing二维码qr码识别解析 1.1. qr码识别解析 by zxing1 1.2. 解码lib:qrcode.jar  2 1.3. atitit.二维码生成总结java zxing ...

  2. Android项目实战(二十八):Zxing二维码实现及优化

    前言: 多年之前接触过zxing实现二维码,没想到今日项目中再此使用竟然使用的还是zxing,百度之,竟是如此牛的玩意. 当然,项目中我们也许只会用到二维码的扫描和生成两个功能,所以不必下载完整的ja ...

  3. 谷歌zxing 二维码生成工具

    一.加入maven依赖 <!-- 谷歌zxing 二维码 --> <dependency> <groupId>com.google.zxing</groupI ...

  4. GEEK学习笔记— —程序猿面试宝典笔记(二)

    所谓笔记,就是比較个人的东西,把个人认为有点意思的东西记录下来~~ 程序猿面试宝典笔记(一)基本概念 程序猿面试宝典笔记(二)预处理.const和sizeof 程序猿面试宝典笔记(三)auto_ptr ...

  5. 剑指Offer - 九度1384 - 二维数组中的查找

    剑指Offer - 九度1384 - 二维数组中的查找2013-11-23 23:23 题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个 ...

  6. (转载)Android项目实战(二十八):Zxing二维码实现及优化

    Android项目实战(二十八):Zxing二维码实现及优化   前言: 多年之前接触过zxing实现二维码,没想到今日项目中再此使用竟然使用的还是zxing,百度之,竟是如此牛的玩意. 当然,项目中 ...

  7. Android项目实战(四十四):Zxing二维码切换横屏扫描

    原文:Android项目实战(四十四):Zxing二维码切换横屏扫描 Demo链接 默认是竖屏扫描,但是当我们在清单文件中配置横屏显示的时候: <activity android:name=&q ...

  8. C#编写程序,找一找一个二维数组中的鞍点

    编写程序,找一找一个二维数组中的鞍点(即该位置上的元素值在行中最大,在该列上最小.有可能数组没有鞍点).要求: 1.二维数组的大小.数组元素的值在运行时输入: 2.程序有友好的提示信息. 代码: us ...

  9. 【 js 基础 】【 源码学习 】backbone 源码阅读(二)

    最近看完了 backbone.js 的源码,这里对于源码的细节就不再赘述了,大家可以 star 我的源码阅读项目(source-code-study)进行参考交流,有详细的源码注释,以及知识总结,同时 ...

随机推荐

  1. Flex中的FusionCharts 3D柱形图

    1.3D柱形图源码 <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:f ...

  2. 对于vxworks下硬盘驱动

    1.曾经看到帖子说vxworks5.5下没有sata驱动,vxworks6.6下有,这样的说法恐怕不正确,由 于俺在5.5下也运用运用了sata硬盘,请注重这里俺只是说运用运用,没有说运用运用了sat ...

  3. STM32 下的库函数和寄存器操作比较

    以 led闪烁中的flashLed函数例子: 库函数操作简单,但是效率不如寄存器操作的高: 寄存器操作很复杂,因为要熟悉上百个寄存器,但是程序效率很高 /**下面是通过直接操作库函数的方式实现IO控制 ...

  4. Ubuntu Desktop变为Ubuntu Server服务器版的方法

    去Ubuntu官网看到有好几种版本可以下载,alternate(文本安装).desktop9(桌面).netbook(上网本).server(服务器). 使用server版某个理由: 32位的系统可以 ...

  5. MySQL语法大全整理的自学笔记

    select * from emp; #注释 #--------------------------- #----命令行连接MySql--------- #启动mysql服务器 net start m ...

  6. spoj freetour II

    昨天吐槽还没A,今天就A了 有个变量开成了全局变量,应该携程局部变量 对于中间的solve我也不懂为什么是nlog2n,我不看题解也不会做 #include<bits/stdc++.h> ...

  7. freemarker中的split字符串分割(十六)

    1.简易说明 split分割:用来根据另外一个字符串的出现将原字符串分割成字符串序列 2.举例说明 <#--freemarker中的split字符串分割--> <#list &quo ...

  8. python基础—装饰器

    python基础-装饰器 定义:一个函数,可以接受一个函数作为参数,对该函数进行一些包装,不改变函数的本身. def foo(): return 123 a=foo(); b=foo; print(a ...

  9. 第十一篇:Map/Reduce 工作机制分析 - 错误处理机制

    前言 对于Hadoop集群来说,节点损坏是非常常见的现象. 而Hadoop一个很大的特点就是某个节点的损坏,不会影响到整个分布式任务的运行. 下面就来分析Hadoop平台是如何做到的. 硬件故障 硬件 ...

  10. java中获取项目在tomcat目录下的路径方法

    HttpServletRequest request //获取的是ROOT项目在tomcat下的路径 方法1: String path = request.getSession().getServle ...