Android(4):Android Studio 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了

Android(4):Android Studio zxing扫码

当然第一时间把整项目下载回来.很大!整个项目几乎100+M.但是对于我们来说,用到的就几M的东西.关注三个文件夹!

Android(4):Android Studio zxing扫码

看到目录的结构基本都知道是使用eclipse创建的项目,毕竟现在已经是android Studio的天下了.我们不可能还挂倒档倒车吧?
接下来就是新建Android Studio项目!

新建Android Studio工程

目前采用是一边导入项目一边截图的方式,这种方式是否没效率?

Android(4):Android Studio zxing扫码

Android Studio 版本:2.0Beta5
Jdk 版本: 1.8

Android(4):Android Studio zxing扫码

项目名称:zxing

Android(4):Android Studio zxing扫码

默认MinmumSdk:10

Android(4):Android Studio zxing扫码

默认Empty Activity

Android(4):Android Studio zxing扫码

默认开发环境帮我们自动创建MainActivity,activity_main布局文件.

Android(4):Android Studio zxing扫码

Android(4):Android Studio zxing扫码

Android Studio 2.0新建项目默认是采用gradle-2.0.x 构建项目,可以看到使用gradle-2.0.x导致项目出错.最简单的办法就是将版本改成1.5.0.当然我也是这样干的.修改完同步一次错误消除.

Android(4):Android Studio zxing扫码

Android(4):Android Studio zxing扫码

把zxing项目zxing-master\android\src\com\google\zxing\client\android目录下存放的是和Android相关的代码.拷贝到我们的项目里面.

Android(4):Android Studio zxing扫码

Android(4):Android Studio zxing扫码

删除MainActivity.Java,Android 帮我们创建的资源文件(因为我们无需使用开发环境为我们创建的资源).

Android(4):Android Studio zxing扫码

把zxing项目zxing-master\android\res目录下所有文件拷到我们项目的res目录下

Android(4):Android Studio zxing扫码

Android(4):Android Studio zxing扫码

Android(4):Android Studio zxing扫码

新建core模块,里面放置和android平台无关的代码.zxing的核心解码代码.

(zxing项目,core模块主要负责二维码的解码工作.全部使用java语言编写,于平台无关.作为一个模块引入.app模块就是纯粹的android代码了.分别一个是通用代码一个是android,很清晰的代码结构.所以zxing移植到各种平台也不是一件难事!)

Android(4):Android Studio zxing扫码

Android(4):Android Studio zxing扫码

删除开发工具为自动创建的代码
把zxing项目zxing-master\core\src\main\java目录下的代码拷到我们项目core模块的相应目录下.

Android(4):Android Studio zxing扫码

Android(4):Android Studio zxing扫码

Android(4):Android Studio zxing扫码

app模块依赖core模块.给app添加模块依赖.

Android(4):Android Studio zxing扫码

AndroidManifest.xml文件安装zxing照搬即可,但是要注意package属性不要弄错.

Android(4):Android Studio zxing扫码

到这里尝试编译,发现还漏了一个类(CameraConfigurationUtils.java).然后发现报错了.
zxing项目把CameraConfigurationUtils.java安置在android-core目录下.因为都是和android相关的,把CameraConfigurationUtils.java拷到zxing.camera包下.

Android(4):Android Studio zxing扫码

再编译,发现很多import都是无效的.因为代码都是在zxing项目拷贝过来,很多import引用的包名来到我们的项目就不对了.使用把包名替换一下即可.

zxing项目中原包名:com.google.zxing.client.android
现项目包名:com.dsliang.zxing

Android(4):Android Studio zxing扫码

Android(4):Android Studio zxing扫码

引来新的问题,因为我Jdk是1.8.但是发现使用Jdk 1.8编译会报错,尝试换成Jdk 1.7通过编译.
但是在在代码中一下子找不到那里的问题.这下子终于正确无误的编译过了!

那就尝试真机运行看看效果吧!不知道你激动了没,反正我现在很激动!
事实上是,闪退了!闪退!闪退!
还好只有布局文件有些许问题.出现类无法找到.修改类名即可(因包名没改过来).
我保证在我电脑这是最后一个错!哈哈,如无意外,人品好的话应该可看到想看的结果!

Android(4):Android Studio zxing扫码

Android(4):Android Studio zxing扫码

附上:
编译工具版本

Android(4):Android Studio zxing扫码

尝试扫一扫

zxing项目运行起来应该是这样子的.

Android(4):Android Studio zxing扫码

或者是这样的(扫描产品条形码)

Android(4):Android Studio zxing扫码

zxing很强大,支持很多种个格式的二维码.

Android(4):Android Studio zxing扫码

当然更多的细节只有在代码里面才知道…有兴趣的同学请去看源码把!

总结

第一篇没写什么有价值的东西,只是简单的把代码跑一次.剔除掉一些没相关的代码,但是有个一问题!
发现zxing代码默认是横屏模式么?(风景模式)横屏模式!市面上没多少二维码扫描工具是横屏模式的吧?
微信就是最典型的,单单从使用角度上竖屏才是实用性最强的吧?
那么对于我来说,接下来的第二篇关于zxing的文件就是实现竖屏了!因为竖屏牵涉到camera稍稍会复杂,并且会穿插zxing扫描的原理和整体运作流程,扫描结果处理,camera预览/相片分辨率等诸多问题

因为网络问题一直没法上传到github,附上下载地址:
http://download.csdn.net/detail/zq2114522/9531339

github:
https://github.com/dsliang/simple-zxing

(function () {('pre.prettyprint code').each(function () { var lines = (this).text().split(\n).length;varnumbering = $('
    ').addClass('pre-numbering').hide(); (this).addClass(hasnumbering).parent().append(numbering); for (i = 1; i

    转载请标明出处:
    http://blog.csdn.net/zq2114522/article/details/51485680
    本文出自:【梁大盛的博客】

    zxing私人定制之一 初试扫码

    引:第一次接触二维码,当然二维码原理懂得不多!那又何妨?有强大的zxing!
    zxing代码真的写的很不错!支持各种平台,代码架构清晰…大神之作!

    结构目录介绍

    zxing项目:https://github.com/zxing/zxing/tree/master
    在写此文章的时候Android app版本已经去到4.7.6了

    Android(4):Android Studio zxing扫码

    当然第一时间把整项目下载回来.很大!整个项目几乎100+M.但是对于我们来说,用到的就几M的东西.关注三个文件夹!

    Android(4):Android Studio zxing扫码

    看到目录的结构基本都知道是使用eclipse创建的项目,毕竟现在已经是android Studio的天下了.我们不可能还挂倒档倒车吧?
    接下来就是新建Android Studio项目!

    新建Android Studio工程

    目前采用是一边导入项目一边截图的方式,这种方式是否没效率?

    Android(4):Android Studio zxing扫码

    Android Studio 版本:2.0Beta5
    Jdk 版本: 1.8

    Android(4):Android Studio zxing扫码

    项目名称:zxing

    Android(4):Android Studio zxing扫码

    默认MinmumSdk:10

    Android(4):Android Studio zxing扫码

    默认Empty Activity

    Android(4):Android Studio zxing扫码

    默认开发环境帮我们自动创建MainActivity,activity_main布局文件.

    Android(4):Android Studio zxing扫码

    Android(4):Android Studio zxing扫码

    Android Studio 2.0新建项目默认是采用gradle-2.0.x 构建项目,可以看到使用gradle-2.0.x导致项目出错.最简单的办法就是将版本改成1.5.0.当然我也是这样干的.修改完同步一次错误消除.

    Android(4):Android Studio zxing扫码

    Android(4):Android Studio zxing扫码

    把zxing项目zxing-master\android\src\com\google\zxing\client\android目录下存放的是和Android相关的代码.拷贝到我们的项目里面.

    Android(4):Android Studio zxing扫码

    Android(4):Android Studio zxing扫码

    删除MainActivity.Java,Android 帮我们创建的资源文件(因为我们无需使用开发环境为我们创建的资源).

    Android(4):Android Studio zxing扫码

    把zxing项目zxing-master\android\res目录下所有文件拷到我们项目的res目录下

    Android(4):Android Studio zxing扫码

    Android(4):Android Studio zxing扫码

    Android(4):Android Studio zxing扫码

    新建core模块,里面放置和android平台无关的代码.zxing的核心解码代码.

    (zxing项目,core模块主要负责二维码的解码工作.全部使用java语言编写,于平台无关.作为一个模块引入.app模块就是纯粹的android代码了.分别一个是通用代码一个是android,很清晰的代码结构.所以zxing移植到各种平台也不是一件难事!)

    Android(4):Android Studio zxing扫码

    Android(4):Android Studio zxing扫码

    删除开发工具为自动创建的代码
    把zxing项目zxing-master\core\src\main\java目录下的代码拷到我们项目core模块的相应目录下.

    Android(4):Android Studio zxing扫码

    Android(4):Android Studio zxing扫码

    Android(4):Android Studio zxing扫码

    app模块依赖core模块.给app添加模块依赖.

    Android(4):Android Studio zxing扫码

    AndroidManifest.xml文件安装zxing照搬即可,但是要注意package属性不要弄错.

    Android(4):Android Studio zxing扫码

    到这里尝试编译,发现还漏了一个类(CameraConfigurationUtils.java).然后发现报错了.
    zxing项目把CameraConfigurationUtils.java安置在android-core目录下.因为都是和android相关的,把CameraConfigurationUtils.java拷到zxing.camera包下.

    Android(4):Android Studio zxing扫码

    再编译,发现很多import都是无效的.因为代码都是在zxing项目拷贝过来,很多import引用的包名来到我们的项目就不对了.使用把包名替换一下即可.

    zxing项目中原包名:com.google.zxing.client.android
    现项目包名:com.dsliang.zxing

    Android(4):Android Studio zxing扫码

    Android(4):Android Studio zxing扫码

    引来新的问题,因为我Jdk是1.8.但是发现使用Jdk 1.8编译会报错,尝试换成Jdk 1.7通过编译.
    但是在在代码中一下子找不到那里的问题.这下子终于正确无误的编译过了!

    那就尝试真机运行看看效果吧!不知道你激动了没,反正我现在很激动!
    事实上是,闪退了!闪退!闪退!
    还好只有布局文件有些许问题.出现类无法找到.修改类名即可(因包名没改过来).
    我保证在我电脑这是最后一个错!哈哈,如无意外,人品好的话应该可看到想看的结果!

    Android(4):Android Studio zxing扫码

    Android(4):Android Studio zxing扫码

    附上:
    编译工具版本

    Android(4):Android Studio zxing扫码

    尝试扫一扫

    zxing项目运行起来应该是这样子的.

    Android(4):Android Studio zxing扫码

    或者是这样的(扫描产品条形码)

    Android(4):Android Studio zxing扫码

    zxing很强大,支持很多种个格式的二维码.

    Android(4):Android Studio zxing扫码

    当然更多的细节只有在代码里面才知道…有兴趣的同学请去看源码把!

    总结

    第一篇没写什么有价值的东西,只是简单的把代码跑一次.剔除掉一些没相关的代码,但是有个一问题!
    发现zxing代码默认是横屏模式么?(风景模式)横屏模式!市面上没多少二维码扫描工具是横屏模式的吧?
    微信就是最典型的,单单从使用角度上竖屏才是实用性最强的吧?
    那么对于我来说,接下来的第二篇关于zxing的文件就是实现竖屏了!因为竖屏牵涉到camera稍稍会复杂,并且会穿插zxing扫描的原理和整体运作流程,扫描结果处理,camera预览/相片分辨率等诸多问题

    因为网络问题一直没法上传到github,附上下载地址:
    http://download.csdn.net/detail/zq2114522/9531339

    github:
    https://github.com/dsliang/simple-zxing