ZXing基于Android Studio 的示例演示搭建

zxing是google的开源项目,它能识别现有流行的二维码和条形码。

  • Android Studio 2.2.2
  • JDK1.8
  • 上篇文章介绍的zxing解压后的文件夹zxing-master

一、新建项目

打开Android Studio,选择New Project,项目名暂时命名为:ZXingDemo;Next后选择Empty Activity,默认名为MainActivity,然后Finish;

二、引入依赖核心包

切换到Project视图,将zxing-master/core/target目录下的core-3.3.2-SNAPSHOT.jar复制到libs文件夹下,然后选中该jar包,右键选中Add As Library,点击OK,将会在External Libraries中;此步类似于eclipse Add to Build Path操作。

三、引入zxing源码和资源

  1. 进入zxing-master/android,将AndroidManifest.xml复制到ZXingDemo并替换原有文件;
  2. 进入zxing-master/android/src,将com文件夹复制到项目的java目录下;
  3. 进入zxing-master/android/res,选择所有文件并复制到项目res文件夹下,选择Skip for all;
  4. 进入zxing-master/android,将assets文件夹复制到项目的main目录;
  5. 进入zxing-master/android-core/src/main/java,将com文件夹复制到项目的java目录下;此文件夹只有一个CameraConfigurationUtils.java文件,合并后将出现在com.google.zxing.client.android.camera目录下;
  6. 删除MainActivity.java、example.administrator.zxingdemo文件夹和对应的布局文件activity_main.xml

四、build和改错

Rebuild Project后,会提示很多资源找不到的错误

资源找不到的错误

  1. @dimen/half_padding 找不到,在res/values/dimens/dimens.xml中添加:

    <dimen name="half_padding">16dp</dimen>
    

    值任意,但建议给16dp

  2. @color/result_view 找不到,在res/values/colors.xml中添加:

    <color name="result_view">#FF4081</color>
    

    颜色值任意

  3. @style/ResultButton 找不到,在res/values/styles.xml中添加:

    <style name="ResultButton">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
    </style>
    

    然后再Rebuild Project,若提示类似错误,就依次为例添加资源,直到Build Success;(慢慢改,错误有很多)

    这里写图片描述

    编译成功!会有很多警告,请忽略。

五、真机运行

打开AndroidManifest.xml,可以发现CaptureActivity是主Activity,这里是程序的入口;打开CaptureActivity,我这里172行位置:getCurrentOrientation()报错,暂时忽略;

插上USB数据线,运行到Android真机上,失败了!!!

这里写图片描述

原因很简单,是因为手机没有相机操作授权,开启权限即可;
本人用的是M6,其它手机可以参照:

  1. 进入设置界面,进入更多应用,选择条码扫描器;
  2. 进入权限管理,找到多媒体相关的相机,设置选择允许;
  3. 来个大返回,重新开启条码扫描器;

这里写图片描述

经测试,条码二维码都可以快速扫描识别,并在识别成功后发出提示音;好了,后面研究CaptureActivity源码就可以自定义扫描器。

六、本地语言的坑

我的手机原本使用的本地语言是English,当运行程序时就会发生运行时异常;

这里写图片描述

原因是res目录下没有English对应的语言包,切换到Project视图下,复制values-zh-rCN文件夹到同级目录下,重命名为values-en,然后打开strings.xml,修改对应的name为英文就OK了。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值