Android App扫描二维码功能的实现
2018-03-09 20:28
1256 查看
转载:http://blog.csdn.net/yuzhiqiang_1993/article/details/78292004
1.基本的扫一扫扫描二维码从图片可以看到,我扫的二维码还是挺复杂的一个二维码,识别速度还可以。具体使用跟设备的摄像头配置有很大关系。
![](https://img-blog.csdn.net/20171020112416068?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXV6aGlxaWFuZ18xOTkz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
扫描条码(准确率不太高,后期再想办法优化吧,毕竟扫条码不是太常用)
![](https://img-blog.csdn.net/20171020133514439?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXV6aGlxaWFuZ18xOTkz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
2.闪光灯(如果设备支持闪光的话,显示闪光灯按钮,否则不会显示)
![](https://img-blog.csdn.net/20171020100148218?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXV6aGlxaWFuZ18xOTkz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
3.解析二维码图片
![](https://img-blog.csdn.net/20171020100954499?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXV6aGlxaWFuZ18xOTkz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
4.解析条码图片
![](https://img-blog.csdn.net/20171020110859595?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXV6aGlxaWFuZ18xOTkz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
5.生成二维码(可以添加logo)
![](https://img-blog.csdn.net/20171020112826162?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXV6aGlxaWFuZ18xOTkz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20171023153626190?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXV6aGlxaWFuZ18xOTkz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
1.添加依赖在根build.gradle中添加
2
3
4
5
6
7
8
在你的app的build.gradle中添加依赖
2
3
4
5
6
7
8
9
10
11
12
如果你的gradle版本是2.x的 用compile代替implementation 即可。2.依赖添加完之后就可以使用了
首先记得申请权限,本来我是把权限给集成到库里的,但是这样的话会导致首次跳转到扫描页面申请权限时会阻塞,直到给权限为止,想了想还是把权限放开,在跳转扫描界面之前自己去处理权限比较好。下面是需要动态申请的权限
2
跳转到扫描界面如下面代码所示,直接使用intent即可,也可以传一个ZxingConfig类,这个类可以控制是否显示底部的布局,是否播放提示音等,也可不传。
2
3
4
5
6
7
8
9
10
11
12
13
14
在onActivityResult中接收解析的结果
2
3
4
5
6
7
8
9
10
11
12
13
好了,实现一个基本的扫一扫就是如此的简单生成二维码如果你有生成二维码的需求,可以直接通过
2
3
4
5
6
7
8
9
10
11
12
13
14
好了,基本就是这些了,上面有github地址,觉得好用的话给个start呦!是在不想使用github的话这里给出源码demo,需要的可以下载源码版demogithub版的使用demogithub地址
1.基本的扫一扫扫描二维码从图片可以看到,我扫的二维码还是挺复杂的一个二维码,识别速度还可以。具体使用跟设备的摄像头配置有很大关系。
扫描条码(准确率不太高,后期再想办法优化吧,毕竟扫条码不是太常用)
2.闪光灯(如果设备支持闪光的话,显示闪光灯按钮,否则不会显示)
3.解析二维码图片
4.解析条码图片
5.生成二维码(可以添加logo)
扫描下载APK体验一下
可以先下载APK体验一下:zxingDemo.apk或者直接用浏览器扫描下载,不需要积分使用方法
在使用上比之前版本简化了很多步骤,目前的版本应该足够日常使用了,如果你需要定制界面或者使用其中的某些功能,你可以直接去github下载demo,直接将moudle依赖到你的项目中,然后修改源码即可。觉得还行话记得给个start哦,我会持续进行优化的。https://github.com/yuzhiqiang1993/zxing这里我只介绍直接依赖的使用方法。1.添加依赖在根build.gradle中添加
maven { url 'https://jitpack.io' }
allprojects { repositories { google() jcenter() maven { url 'https://jitpack.io' } } }1
2
3
4
5
6
7
8
在你的app的build.gradle中添加依赖
implementation 'com.github.yuzhiqiang1993:zxing:2.1.1'
dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:26.1.0' implementation 'com.android.support:design:26.1.0' implementation 'com.android.support:support-vector-drawable:26.1.0' /*添加依赖*/ implementation 'com.github.yuzhiqiang1993:zxing:2.1.1' }1
2
3
4
5
6
7
8
9
10
11
12
如果你的gradle版本是2.x的 用compile代替implementation 即可。2.依赖添加完之后就可以使用了
首先记得申请权限,本来我是把权限给集成到库里的,但是这样的话会导致首次跳转到扫描页面申请权限时会阻塞,直到给权限为止,想了想还是把权限放开,在跳转扫描界面之前自己去处理权限比较好。下面是需要动态申请的权限
Manifest.permission.CAMERA Manifest.permission.READ_EXTERNAL_STORAGE1
2
跳转到扫描界面如下面代码所示,直接使用intent即可,也可以传一个ZxingConfig类,这个类可以控制是否显示底部的布局,是否播放提示音等,也可不传。
Intent intent = new Intent(MainActivity.this, CaptureActivity.class); /*ZxingConfig是配置类 可以设置是否显示底部布局,闪光灯,相册,是否播放提示音 震动等动能 * 也可以不传这个参数 * 不传的话 默认都为默认不震动 其他都为true * */ //ZxingConfig config = new ZxingConfig(); //config.setShowbottomLayout(true);//底部布局(包括闪光灯和相册) //config.setPlayBeep(true);//是否播放提示音 //config.setShake(true);//是否震动 //config.setShowAlbum(true);//是否显示相册 //config.setShowFlashLight(true);//是否显示闪光灯 //intent.putExtra(Constant.INTENT_ZXING_CONFIG, config); startActivityForResult(intent, REQUEST_CODE_SCAN);1
2
3
4
5
6
7
8
9
10
11
12
13
14
在onActivityResult中接收解析的结果
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // 扫描二维码/条码回传 if (requestCode == REQUEST_CODE_SCAN && resultCode == RESULT_OK) { if (data != null) { String content = data.getStringExtra(Constant.CODED_CONTENT); result.setText("扫描结果为:" + content); } } }1
2
3
4
5
6
7
8
9
10
11
12
13
好了,实现一个基本的扫一扫就是如此的简单生成二维码如果你有生成二维码的需求,可以直接通过
CodeCreator.createQRCode(contentEtString, 400, 400, null);即可。
try { /* * contentEtString:字符串内容 * w:图片的宽 * h:图片的高 * logo:不需要logo的话直接传null * */ Bitmap logo = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher); bitmap = CodeCreator.createQRCode(contentEtString, 400, 400, logo); } catch (WriterException e) { e.printStackTrace(); }1
2
3
4
5
6
7
8
9
10
11
12
13
14
好了,基本就是这些了,上面有github地址,觉得好用的话给个start呦!是在不想使用github的话这里给出源码demo,需要的可以下载源码版demogithub版的使用demogithub地址
相关文章推荐
- Android高级控件(三)—— 使用Google ZXing实现二维码的扫描和生成相关功能体系
- Android Zxing实现二维码扫描功能
- android开发之集成zxing,二维码,以及扫描二维码的功能实现。带源代码下载
- android中Zxing实现二维码功能的快速集成以及扫描界面的定制
- Android开发之Zbar实现二维码扫描功能
- 【Android】Android实现扫描、生成二维码的功能
- Android 二维码 扫描 保存 功能的实现
- Android中Webview与原生界面交互及二维码扫描功能实现
- Android开发实现模仿360二维码扫描功能实例详解
- 【转】将扫描QR Codes(二维码)功能加入Android App
- 基于ZXing Android实现生成二维码图片和相机扫描二维码图片即时解码的功能
- Android平台生成二维码并实现扫描 & 识别功能
- Android高级控件(三)—— 使用Google ZXing实现二维码的扫描和生成相关功能体系
- android实现扫描网页二维码进行网页登录功能
- [置顶] Android移动开发-在Android项目里集成开源框架ZXing实现扫描二维码的功能
- Android高级控件(三)—— 使用Google ZXing实现二维码的扫描和生成相关功能体系
- Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果(现在正做个扫描App、收藏)
- [置顶] android开发之集成zxing,二维码,以及扫描二维码的功能实现。带源代码下载
- h5 扫描二维码打开app和点击下载功能的实现
- 关于扫描二维码下载app功能实现方法