Android快速实现二维码扫描--Zbar
Android中二维码扫描的最常用库是zxing和zbar,上一篇《Android快速实现二维码扫描–Zxing》介绍了Zxing。这次说Zbar,Zbar速度极快,我就比较常用,项目地址:https://github.com/ZBar/ZBar
同样你会发现官方库的东西太多,我们不是全部需要,照着官方demo改太耗时,所以分享一下我常用的集成方式。
先上效果图
源码已上传至Github:https://github.com/yangxch/ScanZbar
集成
1.引入jar包和so文件
如果jar文件和so文件放在libs下,需在app build.gradle的android标签中加入如下代码并Sync Now
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
2.将zbar包copy到项目
这里包名不一样肯定会报错,clean project并改掉包名就好。
3.导入相关资源文件
drawable、drawable-hdpi、drawable-xhdpi和layout
raw文件和values文件
注: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;
}
}
动态权限申请
由于扫描需要调用相机,同样需要进行权限的动态申请,源码中我已加入,具体做法和上一篇一样。
分析
zbar包下主要类作用如下
CaptureActivity:为扫码界面的Activity;
AutoFocusManager:相机自动聚焦管理类 ;
CameraConfigurationManager:相机配置参数信息的操作类 ;
CameraManager:为自定义相机操作的封装,管理相机的打开,取景,参数,回收处理;
PreviewCallback:图像数据回调处理;
DecodeThread:解码子线程;
BeepManager:扫码操作声音处理;
更多技术干货,欢迎关注我的公众号:ChaoYoung
Android快速实现二维码扫描--Zbar的更多相关文章
- Android快速实现二维码扫描--Zxing
Android中二维码扫描的最常用库是zxing和zbar,zxing项目地址为https://github.com/zxing/zxing,目前还有多个人在维护.zbar主要用C来写的,对速度有要求 ...
- Android仿微信二维码扫描
转载:http://blog.csdn.net/xiaanming/article/details/10163203 了解二维码这个东西还是从微信中,当时微信推出二维码扫描功能,自己感觉挺新颖的,从一 ...
- Android之Zxing二维码扫描图片拉伸
还是这个接手项目,二维码扫描集成的是zxing,扫描界面的图像有明显的拉伸变形. 这种问题,根据以往的经验,一般是x,y轴错位引起的,处理好x,y轴的问题,一般可以解决问题. 由于这个问题,之前有很多 ...
- android中Zing二维码扫描,二维码生成
Android中二维码扫描的最常用库是zxing和zbar,zxing项目地址为https://github.com/zxing/zxing,目前还有多个人在维护.zbar主要用C来写的,对速度有要求 ...
- Android "QR二维码扫描"
支持灯 扫描结果 支持 抄.分享.浏览打开(超链接) 自己主动保存扫描记录 划删除 和源代码 git: http://git.oschina.net/892642257/QRCode csdn(0分) ...
- android利用zbar二维码扫描-(解决中文乱码及扫描区域定义)
写在最前(这是对上一篇博文的问题做的更新[android利用zbar二维码扫描]) project下载 zbarLib编译project project下载0积分 bug 在2.3的系统中Hol ...
- 【转】Android手机客户端关于二维码扫描的源码--不错
原文网址:https://github.com/SkillCollege/QrCodeScan QrCodeScan 这是Android手机客户端关于二维码扫描的源码,使用了高效的ZBar解码库,并修 ...
- Android开发——Android中的二维码生成与扫描
0. 前言 今天这篇文章主要描述二维码的生成与扫描,使用目前流行的Zxing,为什么要讲二维码,因为二维码太普遍了,随便一个Android APP都会有二维码扫描.本篇旨在帮助有需求的同学快速完成二维 ...
- XAMARIN ANDROID 二维码扫描示例
现在二维码的应用越来越普及,二维码扫描也成为手机应用程序的必备功能了.本文将基于 Xamarin.Android 平台使用 ZXing.Net.Mobile 做一个简单的 Android 条码扫描示 ...
随机推荐
- Windows Server 2016离线安装.NET Framework 3.5
windows server 2016默认是不安装.netframework3.5的,可以在添加删除程序中单独添加.但是有时候系统安装文件不在的时候,找不到安装程序就不能安装成功. 这时候单独下载do ...
- Java最小化镜像制作
下载Oracle官网的JRE包,最终下载的包如下: jre-8u181-linux-x64.tar.gz 解压JRE包并删除不必要的文件 #解压 tar xf jre-8u181-linux-x64. ...
- Log4j 日志组件
官网:https://logging.apache.org/log4j/2.x/ 使用 Log4j 的步骤: 第一步 引入 Log4j 的 jar 包 1. 直接下载 log4j-x.x.x.jar ...
- [JAVA]JAVA章4 Thread Dump如何分析
一.Thread Dump介绍 1.1什么是Thread Dump? Thread Dump是非常有用的诊断Java应用问题的工具.每一个Java虚拟机都有及时生成所有线程在某一点状态的thread- ...
- C# Form Chart X刻度左右多余一格怎么去掉
如上图所示:形成的chart,1和8时y没有值,我实际给的也是2~7的数,可视1和8的刻度却在,怎么去掉,谢谢. 解决方法:chart1.ChartAreas[0].AxisX.IsMarginVis ...
- 重写comparater比较器
TreeSet 能自动对对象进行排序,但是一般需要在类中重写比较方法 比较器介绍 在类中实现Comparable接口,并重写compareTo方法 排序对象类 package typing.overr ...
- 339. Nested List Weight Sum
https://leetcode.com/problems/nested-list-weight-sum/description/ Given a nested list of integers, r ...
- PHY过采样问题
什么频率下进行过采样 ?? 按时程序是LMDS时钟小于100M时会进行过程采样,实际上PHY的文档上也有明确的说明: The minimum operational data rate is 1.0 ...
- 源码分析MySQL mysql_real_query函数
目录 目录 1 1. 前言 1 2. 调用路径 2 3. MAX_PACKET_LENGTH宏 2 4. DBUG_RETURN宏 3 5. COM_QUERY枚举值 3 6. mysql_query ...
- div辅助线【完整版】
## <html> <head> <link rel="stylesheet" type="https://cdn.bootcss.com/ ...