您的位置:首页 > 其它

zxing私人定制之一 初试扫码

2016-05-25 21:46 357 查看

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: