android二维码扫描、读取、识别、生成、带logo
来源:互联网 发布:长沙知豆电动车租赁 编辑:程序博客网 时间:2024/06/05 19:44
注:本文使用的是Github上的工程,点击访问,如您是原作者,如有侵权,麻烦联系我删除!
效果图(摄像头扫描在代码中有,但是由于录屏原因,效果图没有录制):
原作者基本把关于二维码的操作基本都封装好了,使用起来也比较简单,本文只是轻讲解关于怎么使用,基本可以满足所有要求,推荐使用!
首先是添加依赖到as中,两个版本任选一个(建议使用最新版):
(老版本) compile 'cn.bingoogolapple:bga-qrcodecore:1.0.7@aar' compile 'cn.bingoogolapple:bga-zxing:1.0.7@aar' compile 'com.android.support:design:23.3.0' (最新版) compile 'com.google.zxing:core:3.2.1' compile 'cn.bingoogolapple:bga-qrcodecore:1.1.3@aar' compile 'cn.bingoogolapple:bga-zxing:1.1.3@aar'
添加所用到的权限
//调用相机<uses-permission android:name="android.permission.CAMERA" />//震动(用不到震动可以去掉)<uses-permission android:name="android.permission.VIBRATE" />//闪光灯(如不用闪光灯可以去掉)<uses-permission android:name="android.permission.FLASHLIGHT" />
一、摄像头读取二维码:
首先,布局文件中使用封装好的布局:
<cn.bingoogolapple.qrcode.zxing.ZXingView android:id="@+id/zx_view" android:layout_width="match_parent" android:layout_height="match_parent" app:qrcv_animTime="1000" app:qrcv_borderColor="@android:color/white" app:qrcv_borderSize="1dp" app:qrcv_cornerColor="@color/colorPrimaryDark" app:qrcv_cornerLength="20dp" app:qrcv_cornerSize="3dp" app:qrcv_maskColor="#99000000" app:qrcv_rectWidth="200dp" app:qrcv_scanLineColor="@color/colorPrimaryDark" app:qrcv_scanLineSize="1dp" app:qrcv_topOffset="90dp" />
参数参考:
然后在activity中给控件设置好识别处理监听
//设置结果处理 //mQR.setResultHandler(this);(如果使用的老版本的依赖,使用这个) mQR.setDelegate(this);(如果使用的新版本的依赖,使用这个) //开始读取二维码 mQR.startSpot();
然后当前类实现QRCodeView.Delegate,实现两个回调,onScanQRCodeSuccess()与onScanQRCodeOpenCameraError():
/** * 扫描二维码成功 * @param result 识别的结果 */ @Override public void onScanQRCodeSuccess(String result) { Toast.makeText(ScanActivity.this, result, Toast.LENGTH_SHORT).show(); } /** * 打开相机出错 */ @Override public void onScanQRCodeOpenCameraError() { Toast.makeText(ScanActivity.this, "打开相机出错!请检查是否开启权限!", Toast.LENGTH_SHORT).show(); }
下面是控件方法总结:
mQR.startCamera();开启预览,但是并未开始识别
mQR.stopCamera();停止预览,并且隐藏扫描框
mQR.startSpot();开始识别二维码
mQR.stopSpot();停止识别
mQR.startSpotAndShowRect();开始识别并显示扫描框
mQR.stopSpotAndHiddenRect();停止识别并隐藏扫描框
mQR.showScanRect();显示扫描框
mQR.hiddenScanRect();隐藏扫描框
mQR.openFlashlight();开启闪光灯
mQR.closeFlashlight();关闭闪光灯
mQR.startSpotDelay(ms);延迟ms毫秒后开始识别
以上就是扫描读取二维码,比较简单,就不做过多介绍
二、生成二维码以及识别图片上的二维码
生成二维码与生成带logo的二维码都调用QRCodeEncoder.encodeQRCode()方法:
生成二维码:
/** * 生成二维码 * 第一个参数为要生成的文本 * 第二个参数为生成尺寸 * 第三个参数为生成回调 */ QRCodeEncoder.encodeQRCode(etinput.getText().toString().trim(), DisplayUtils.dp2px(GenerateActivity.this, 160), new QRCodeEncoder.Delegate() { /** * 生成成功 * @param bitmap */ @Override public void onEncodeQRCodeSuccess(Bitmap bitmap) { ivqr.setImageBitmap(bitmap); } /** * 生成失败 */ @Override public void onEncodeQRCodeFailure() { Toast.makeText(GenerateActivity.this, "生成二维码失败", Toast.LENGTH_SHORT).show(); } });
生成带logo二维码:
/** * 生成二维码 * 第一个参数为要生成的文本 * 第二个参数为生成尺寸 * 第三个参数为生成二维码颜色 * 第四个参数为logo资源 * 第五个参数为生成回调 */ QRCodeEncoder.encodeQRCode(etinput.getText().toString().trim(), DisplayUtils.dp2px(GenerateActivity.this, 160), Color.parseColor("#000000"), ((BitmapDrawable)ivlogo.getDrawable()).getBitmap(), new QRCodeEncoder.Delegate() { @Override public void onEncodeQRCodeSuccess(Bitmap bitmap) { ivqr.setImageBitmap(bitmap); } @Override public void onEncodeQRCodeFailure() { Toast.makeText(GenerateActivity.this, "生成带logo的二维码失败", Toast.LENGTH_SHORT).show(); } });
解析图片上的二维码、条形码:
/** * 解析二维码、条形码 * 第一个参数为带有二维码的图片 * 第二个参数为解析回调 */ QRCodeDecoder.decodeQRCode(bitmap, new QRCodeDecoder.Delegate() { /** * 解析成功 */ @Override public void onDecodeQRCodeSuccess(String result) { Toast.makeText(GenerateActivity.this, result, Toast.LENGTH_SHORT).show(); } /** * 解析失败 */ @Override public void onDecodeQRCodeFailure() { Toast.makeText(GenerateActivity.this, "解析二维码失败!", Toast.LENGTH_SHORT).show(); } });
好了,就介绍到这里,基本也没什么说的,本文只是说下使用方法,使用起来也比较灵活,比较简单,赞一下!
本文内容如有不懂,可以下载apk安装手机看看效果,也可以参考代码!
本文相关下载: 点击免费下载源码 点击免费下载apk软件
- android二维码扫描、读取、识别、生成、带logo
- QRCode 扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式
- 扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式
- Android 二维码生成 带logo
- 实现扫描二维码和生成带logo的二维码
- 项目中扫描二维码和生成带logo的二维码
- 【iOS开发】二维码生成 二维码读取 (带Logo的二维码)
- android生成带logo的二维码
- 生成二维码(中间带logo) android
- Android 生成带logo的二维码
- android 二维码,条形码生成与扫描识别
- android二维码、条形码生成与扫描识别
- C# ZXing.Net生成二维码、识别二维码、生成带Logo的二维码
- Android 生成二维码 带LOGO的二维码 条形码
- android 带与不带logo的二维码生成
- php生成二维码带logo
- 生成带logo的二维码
- iOS二维码生成(带logo)
- Install Cassandra on windows
- mongo分组聚合(sum)在java中的用户:Aggregation agg = newAggregation();
- 动画库 Tweenmax 使用示例1 - 执行动画
- 读书笔记2---JavaScript number(数字)类型数据
- 关于Android的Dialog
- android二维码扫描、读取、识别、生成、带logo
- 数据结构实验-用C++实现带头结点的循环链表
- php设定错误和异常处理可使用的函数
- hdu1732 Push Box ---- BFS
- 设计模式汇总:结构型模型(下)
- ios8和之前系统[UIScreen mainScreen].bounds的不一样
- 数据库-约束
- UITableView设置分区头跟随UITableView滚动
- Android设计中如何切图.9.png(点9图)