首页 源码 正文

zbar源码下载,zbar下载

2024-04-24 22:04:05 66 0
admin

Android中二维码扫描的最常用库是zxing和zbar,上一篇zbar源码下载我介绍了Zxing。这次说Zbar,Zbar速度极快,我就比较常用,项目地址:https://github.com/ZBar/ZBar

同样zbar源码下载你会发现官方库的东西太多,我们不是全部需要,照着官方demo改太耗时,所以分享一下我常用的集成方式。

先上效果图

zbar源码下载

zbar源码下载

zbar源码下载

源码已上传至Github:https://github.com/yangxch/ScanZbar

集成

1.引入jar包和so文件

zbar源码下载

如果jar文件和so文件放在libs下,需在app build.gradle的android标签中加入如下代码并Sync Now

sourceSets { main { jniLibs.srcDirs = ['libs'] }}

2.将zbar包copy到项目

zbar源码下载

这里包名不一样肯定会报错,clean project并改掉包名就好。

3.导入相关资源文件

drawable、drawable-hdpi、drawable-xhdpi和layout

zbar源码下载

raw文件和values文件

zbar源码下载

注:values中相关资源不要直接替换,否则会覆盖之前的,需要打开文件将内容加到自己项目对应文件中。

4.AndroidManifest.xml加入相关权限和扫描的Activity

<uses-permission android:name="android.permission.CAMERA" /><uses-feature android:name="android.hardware.camera" /><uses-feature android:name="android.hardware.camera.autofocus" /><activity android:name=".zbar.CaptureActivity" />

5.调用扫描界面 获取扫描结果

在需要打开扫描界面的地方直接跳转至CaptureActivity(使用startActivityForResult)

/** * 跳转到扫码界面扫码 */private void goScan(){ Intent intent = new Intent(MainActivity.this, CaptureActivity.class); startActivityForResult(intent, REQUEST_CODE_SCAN);}

在onActivityResult的回调中即可获取扫描内容,如下

@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case REQUEST_CODE_SCAN: // 扫描二维码回传 if (resultCode == RESULT_OK) { if (data != null) { //获取扫描结果 Bundle bundle = data.getExtras(); String result = bundle.getString(CaptureActivity.EXTRA_STRING); } } break; default: break; }}

动态权限申请

由于扫描需要调用相机,同样需要进行权限的动态申请,源码中我已加入,具体做法和我写的上一篇用Zxing实现的一样。

分析

zbar包下主要类作用如下

CaptureActivity:为扫码界面的Activity;

AutoFocusManager:相机自动聚焦管理类 ;

CameraConfigurationManager:相机配置参数信息的操作类 ;

CameraManager:为自定义相机操作的封装,管理相机的打开,取景,参数,回收处理;

PreviewCallback:图像数据回调处理;

DecodeThread:解码子线程;

BeepManager:扫码操作声音处理;

收藏
分享
海报
0 条评论
66

本站已关闭游客评论,请登录或者注册后再评论吧~