程序猿媛 九:Adroid zxing 二维码3.1集成(源码无删减)
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集成(源码无删减)的更多相关文章
- Atitit zxing二维码qr码识别解析
Atitit zxing二维码qr码识别解析 1.1. qr码识别解析 by zxing1 1.2. 解码lib:qrcode.jar 2 1.3. atitit.二维码生成总结java zxing ...
- Android项目实战(二十八):Zxing二维码实现及优化
前言: 多年之前接触过zxing实现二维码,没想到今日项目中再此使用竟然使用的还是zxing,百度之,竟是如此牛的玩意. 当然,项目中我们也许只会用到二维码的扫描和生成两个功能,所以不必下载完整的ja ...
- 谷歌zxing 二维码生成工具
一.加入maven依赖 <!-- 谷歌zxing 二维码 --> <dependency> <groupId>com.google.zxing</groupI ...
- GEEK学习笔记— —程序猿面试宝典笔记(二)
所谓笔记,就是比較个人的东西,把个人认为有点意思的东西记录下来~~ 程序猿面试宝典笔记(一)基本概念 程序猿面试宝典笔记(二)预处理.const和sizeof 程序猿面试宝典笔记(三)auto_ptr ...
- 剑指Offer - 九度1384 - 二维数组中的查找
剑指Offer - 九度1384 - 二维数组中的查找2013-11-23 23:23 题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个 ...
- (转载)Android项目实战(二十八):Zxing二维码实现及优化
Android项目实战(二十八):Zxing二维码实现及优化 前言: 多年之前接触过zxing实现二维码,没想到今日项目中再此使用竟然使用的还是zxing,百度之,竟是如此牛的玩意. 当然,项目中 ...
- Android项目实战(四十四):Zxing二维码切换横屏扫描
原文:Android项目实战(四十四):Zxing二维码切换横屏扫描 Demo链接 默认是竖屏扫描,但是当我们在清单文件中配置横屏显示的时候: <activity android:name=&q ...
- C#编写程序,找一找一个二维数组中的鞍点
编写程序,找一找一个二维数组中的鞍点(即该位置上的元素值在行中最大,在该列上最小.有可能数组没有鞍点).要求: 1.二维数组的大小.数组元素的值在运行时输入: 2.程序有友好的提示信息. 代码: us ...
- 【 js 基础 】【 源码学习 】backbone 源码阅读(二)
最近看完了 backbone.js 的源码,这里对于源码的细节就不再赘述了,大家可以 star 我的源码阅读项目(source-code-study)进行参考交流,有详细的源码注释,以及知识总结,同时 ...
随机推荐
- NetBeans部署项目(Extjs)报错(一)
NetBeans部署项目(Extjs)报错(一) 1.用NetBeans将项目部署到Tomcat中,报错. 具体如下: ant -f D:\\NetBeans\\workspace\\Foundati ...
- Openstack_O版(otaka)部署_镜像服务glance部署
安装和配置服务 1. 建库建用户 mysql -u root -p CREATE DATABASE glance; GRANT ALL PRIVILEGES ON glance.* TO '; GRA ...
- iOS - UIView 动画
1.UIView 动画 核心动画 和 UIView 动画 的区别: 核心动画一切都是假象,并不会真实的改变图层的属性值,如果以后做动画的时候,不需要与用户交互,通常用核心动画(转场). UIView ...
- SpringMVC国际化支持
这周公司领导希望我对一个项目,出一个国际化的解决方案,研究两个小时,采用了SpringMVC的国际化支持,在此记录下. 原理: 在DispatchServlet中注册localeResolver(区域 ...
- Python基础_如何用pip安装文件
与其他语言相比,Python的一个很大的优势是由丰富的资源库,这就需我们按照自己的来安装文件和包.本节以在windows系统下安装pygame 为例来讲述一下安装步骤. 1. 检测python中有没有 ...
- python访问mysql和redis
1. 修改mysql配置文件 修改bind-address=0.0.0.0(允许通过远程网络连接) 2. 修改redis配置文件 修改bind-address=0.0.0.0(允许通过远程网络连接), ...
- Autofac高级用法之动态代理
前言 Autofac的DynamicProxy来自老牌的Castle项目.DynamicProxy(以下称为动态代理)起作用主要是为我们的类生成一个代理类,这个代理类可以在我们调用原本类的方法之前,调 ...
- Css多列语法笔记
columns多列属性定义: column-width:规定列的宽度(此宽度是缩放scale以后的最小宽度): column-count:规定元素被分隔的列数: column-rule设置所有colu ...
- 初学者第二节之HelloWorld
ava具有简单性.面向对象.分布式.健壮性.安全性.平台独立与可移植性.多线程.动态性等特点.Java可以编写桌面应用程序.Web应用程序.分布式系统和嵌入式系统应用程序等. 一.首先创建一个Hell ...
- app图标icon大全
http://tool.58pic.com/tubiaobao/index.php?m=Index&a=ui&p=2 很有用,下载没用,直接右键吧.