Android快速实现扫一扫(Zxing),闪光灯,生成二维码图片,解析二维码(条码)

https://github.com/yuzhiqiang1993/zxing

这里我只介绍直接依赖的使用方法。

1.添加依赖

在根build.gradle中添加maven { url 'https://jitpack.io' }

allprojects{    repositories {        google()        jcenter()        maven { url'https://jitpack.io'}}}


在你的app的build.gradle中添加依赖implementation 'com.github.yuzhiqiang1993:zxing:2.0.0'

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.0.0'}

1


如果你的gradle版本是2.x的 用compile代替implementation 即可。

2.依赖添加完之后就可以使用了

首先记得申请权限,本来我是把权限给集成到库里的,但是这样的话会导致首次跳转到扫描页面申请权限时会阻塞,直到给权限为止,想了想还是把权限放开,在跳转扫描界面之前自己去处理权限比较好。

下面是需要动态申请的权限

Manifest.permission.CAMERAManifest.permission.READ_EXTERNAL_STORAGE


跳转到扫描界面

如下面代码所示,直接使用intent即可,也可以传一个ZxingConfig类,这个类可以控制是否显示底部的布局,是否播放提示音等,也可不传。

Intent intent =newIntent(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);


在onActivityResult中接收解析的结果

@OverrideprotectedvoidonActivityResult(intrequestCode,intresultCode, 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);            }        }    }


好了,实现一个基本的扫一扫就是如此的简单

生成二维码

如果你有生成二维码的需求,可以直接通过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();}


好了,基本就是这些了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,873评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,012评论 25 709
  • 二维码扫描最近两年简直是风靡移动互联网时代,尤其在国内发展神速。围绕条码扫码功能,首先说说通过本文你可以知道啥。一...
    55book阅读 9,673评论 0 1
  • 到底 爱是什么 到底 情是什么 到底 家是什么 到底 婚姻该如何 启动 运营 思想成长 个人还是家 维系 到底多久...
    简大树阅读 1,108评论 0 0
  • 小A是一个借力的高手,自己开了一家专卖进口商品的商场,他是一个典型的借力高手,什么东西都能够用最少的投入获得最大的...
    逍遥此生君子意阅读 5,043评论 0 50

友情链接更多精彩内容