Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

ygfgit/QrCodeScan

Open more actions menu
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QrCodeScan

这是Android手机客户端关于二维码扫描的源码,使用了高效的ZBar解码库,并修复了中文乱码。

融合了ZXing代码(使用其中的相机管理功能)。

一、 使用开源ZXing扫描的缺点

1、原始代码是横屏模式,尽管可以改成竖屏,但是扫描界面的自定义和多屏幕适配不好做

2、有效扫描区域不好控制,可能是我自己技术不成熟,没找到好方法

3、ZXing是Java写的,对二维码的解析效率没有ZBar快

二、 使用iOS开发经常使用的ZBar扫描的缺点

1、 ZBar是C实现的二维码解析,但是在解析中文时会乱码

2、 ZBar的扫描界面对相机的控制没有ZXing封装的好

基于以上一些原因,笔者决定何不将二者结合起来,用ZXing来控制摄像头取得图像,用ZBar来解析扫描到的数据,最终形成目前的项目。

三、 开发步骤

首先剥离ZXing的Camera控制代码,得到扫描的原始数据,ZXing的ViewFindView个人感觉不是很好,索性我就把它去掉了,

直接通过xml文件进行布局,多屏幕的适配瞬间就解决了。并且对于扫描激光线的动画效果,横竖屏的控制都只需要稍稍变换代码即可实现。 对于ZBar的中文乱码应该怎么解决呢?网上找了之后发现需要修改ZBar的qrcodetxt.c将里面的编码ISO-8859-1改成GBK就可以了

四、 使用方法

1、 Eclipse直接导入运行即可

2、 如果是在Android Studio运行,出现

Couldn't load libzbar from loader dalvik.system.PathClassLoader findLibrary returned null

异常的解决方法是:

A. 把so文件放到如下目录(src/main/jniLibs/armeabi/libzbar.so)

|src
|--main/
|----java/
|----res/
|----jniLibs/
|------armeabi
|--------libzbar.so

B.Rebuild Project

注意:如果是想要在自己的项目中直接使用项目提供的ZbarManager源码。需要保持包名一致(com.zbar.lib)

感谢@Houny提供的Android Studio下运行异常解决方法。

About

Android手机客户端二维码扫描

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
Morty Proxy This is a proxified and sanitized view of the page, visit original site.