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

来源:互联网 发布:手机淘宝账户设置在哪 编辑:程序博客网 时间:2024/06/18 11:14

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了。

原创粉丝点击