二维码开源项目ZXing在android studio项目中的应用以及portrait竖屏模式的更改

开发环境:Android Studio 1.4 Beta2

     ZXing 3.2.1

       SDK API22

一、简介

  ZXing是一个著名的二维码开源项目,最近项目需要添加扫一扫功能,网上找实现方法后决定用ZXing,项目主页:https://github.com/zxing/zxing。同步下来后,有几个比较重要的目录:

  core与android core是项目的核心目录以及android开发需要的核心,基本上需要二次开发的话需要引用这两个目录;

  android 目录:是一个叫做“条码扫描器”(Barcode Scanner)的程序,是官方利用core与android core实现的一个扫码程序;

  android-integration:提供了一种简单的让你在你的app中调用Barcode Scanner(简称BS)的实现,用它的话有一个弊端,需要在手机上同时安装你的app和BS,扫码是你的app会调用BS这个app;

  androidtest:就是一个利用android-integration调用BS的例子。

  与android开发相关的基本上就这5个目录,在实际开发中,考虑到integration的弊端,我们舍弃这种方式,而是将ZXing整合到我们的项目中去,而考虑到引入core与android core来进行二次开发的周期比较长,决定直接在项目用引用Barcode Scanner。

二、作为引用导入BS

  在Android Studio中打开我们的项目A,将android文件夹拷贝到项目A目录下,重命名为ZXing,依次点击File->Project  Structure->Project Setting->Modules ,点击+添加module,选择Import Module,选中目录下的ZXing文件夹,点击添加:

  

然后继续在Modules设置中将主Module的Dependencies中加入ZXing,加入完毕。运行后出现错误:

Error:(84, 33) java: -source 1.6 中不支持 diamond 运算符
(请使用 -source 7 或更高版本以启用 diamond 运算符)

修改ZXing下build.gradle中javaversion版本,将1.6改为1.7:

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}

 同时将ZXing的language level 改为7:

完成后项目运行无错误。

最后,在相应按钮的监听中添加跳转处理,即可开启二维码扫描功能:

Intent intent = new Intent(AppMainFrame.this, CaptureActivity.class);
startActivity(intent);

注意删除掉ZXing下Manifest中的
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
posted @ 2015-09-02 15:51  華胥亡靈  阅读(5200)  评论(0编辑  收藏  举报