zxing私人定制之一 初试扫码
Posted dsliang12
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zxing私人定制之一 初试扫码相关的知识,希望对你有一定的参考价值。
转载请标明出处:
http://blog.csdn.net/zq2114522/article/details/51485680;
本文出自:【梁大盛的博客】
zxing私人定制之一 初试扫码
引:第一次接触二维码,当然二维码原理懂得不多!那又何妨?有强大的zxing!
zxing代码真的写的很不错!支持各种平台,代码架构清晰…大神之作!
结构目录介绍
zxing项目:https://github.com/zxing/zxing/tree/master
在写此文章的时候android app版本已经去到4.7.6了
当然第一时间把整项目下载回来.很大!整个项目几乎100+M.但是对于我们来说,用到的就几M的东西.关注三个文件夹!
看到目录的结构基本都知道是使用eclipse创建的项目,毕竟现在已经是Android Studio的天下了.我们不可能还挂倒档倒车吧?
接下来就是新建Android Studio项目!
新建Android Studio工程
目前采用是一边导入项目一边截图的方式,这种方式是否没效率?
Android Studio 版本:2.0Beta5
Jdk 版本: 1.8
项目名称:zxing
默认MinmumSdk:10
默认Empty Activity
默认开发环境帮我们自动创建MainActivity,activity_main布局文件.
Android Studio 2.0新建项目默认是采用gradle-2.0.x 构建项目,可以看到使用gradle-2.0.x导致项目出错.最简单的办法就是将版本改成1.5.0.当然我也是这样干的.修改完同步一次错误消除.
把zxing项目zxing-master\\android\\src\\com\\google\\zxing\\client\\android目录下存放的是和Android相关的代码.拷贝到我们的项目里面.
删除MainActivity.java,Android 帮我们创建的资源文件(因为我们无需使用开发环境为我们创建的资源).
把zxing项目zxing-master\\android\\res目录下所有文件拷到我们项目的res目录下
新建core模块,里面放置和android平台无关的代码.zxing的核心解码代码.
(zxing项目,core模块主要负责二维码的解码工作.全部使用java语言编写,于平台无关.作为一个模块引入.app模块就是纯粹的android代码了.分别一个是通用代码一个是android,很清晰的代码结构.所以zxing移植到各种平台也不是一件难事!)
删除开发工具为自动创建的代码
把zxing项目zxing-master\\core\\src\\main\\java目录下的代码拷到我们项目core模块的相应目录下.
app模块依赖core模块.给app添加模块依赖.
AndroidManifest.xml文件安装zxing照搬即可,但是要注意package属性不要弄错.
到这里尝试编译,发现还漏了一个类(CameraConfigurationUtils.java).然后发现报错了.
zxing项目把CameraConfigurationUtils.java安置在android-core目录下.因为都是和android相关的,把CameraConfigurationUtils.java拷到zxing.camera包下.
再编译,发现很多import都是无效的.因为代码都是在zxing项目拷贝过来,很多import引用的包名来到我们的项目就不对了.使用把包名替换一下即可.
zxing项目中原包名:com.google.zxing.client.android
现项目包名:com.dsliang.zxing
引来新的问题,因为我Jdk是1.8.但是发现使用Jdk 1.8编译会报错,尝试换成Jdk 1.7通过编译.
但是在在代码中一下子找不到那里的问题.这下子终于正确无误的编译过了!
那就尝试真机运行看看效果吧!不知道你激动了没,反正我现在很激动!
事实上是,闪退了!闪退!闪退!
还好只有布局文件有些许问题.出现类无法找到.修改类名即可(因包名没改过来).
我保证在我电脑这是最后一个错!哈哈,如无意外,人品好的话应该可看到想看的结果!
附上:
编译工具版本
尝试扫一扫
zxing项目运行起来应该是这样子的.
或者是这样的(扫描产品条形码)
zxing很强大,支持很多种个格式的二维码.
当然更多的细节只有在代码里面才知道…有兴趣的同学请去看源码把!
总结
第一篇没写什么有价值的东西,只是简单的把代码跑一次.剔除掉一些没相关的代码,但是有个一问题!
发现zxing代码默认是横屏模式么?(风景模式)横屏模式!市面上没多少二维码扫描工具是横屏模式的吧?
微信就是最典型的,单单从使用角度上竖屏才是实用性最强的吧?
那么对于我来说,接下来的第二篇关于zxing的文件就是实现竖屏了!因为竖屏牵涉到camera稍稍会复杂,并且会穿插zxing扫描的原理和整体运作流程,扫描结果处理,camera预览/相片分辨率等诸多问题
因为网络问题一直没法上传到github,附上下载地址:
http://download.csdn.net/detail/zq2114522/9531339
github:
https://github.com/dsliang/simple-zxing
以上是关于zxing私人定制之一 初试扫码的主要内容,如果未能解决你的问题,请参考以下文章