使用步骤:
步骤1: app.gradle中引入
implementation 'cn.bingoogolapple:bga-qrcode-zxing:1.2.1'
步骤2: 申请运行时权限,主要是:
Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE
我这边用的是PermissionDispatcher一键插入用起来特别便捷 PermissionDispatcher Permission开源地址
步骤3: xml书写
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.initproject.ui.activity.me.ZxingActivity">
<include
layout="@layout/include_toolbar"
/>
<!--app:qrcv_barcodeRectHeight条码扫描框的宽度
qrcv_borderSize扫描框的宽度
qrcv_cornerColor扫描框的颜色
qrcv_cornerLength扫描框边角线的长度
qrcv_cornerSize扫描框边角线的宽度
qrcv_customScanLineDrawable扫描线的图片资源「默认的扫描线图片样式不能满足你的需求时使用,
*********** 自定义的扫描线
设置该属性后 qrcv_isShowDefaultScanLineDrawable、qrcv_scanLineSize、qrcv_scanLineColor 将失效」
qrcv_isBarcode是否是扫条形码
qrcv_isCenterVertical扫描框是否垂直居中,该属性为true时会忽略 qrcv_topOffset 属性
qrcv_isOnlyDecodeScanBoxArea 是否只识别扫描框区域的二维码
qrcv_isScanLineReverse扫描线是否来回移动
qrcv_isShowDefaultGridScanLineDrawable是否显示默认的网格图片扫描线
qrcv_isShowTipBackground是否显示提示文案的背景
qrcv_isShowTipTextAsSingleLine是否把提示文案作为单行显示
qrcv_isTipTextBelowRect提示文案是否在扫描框的底部
qrcv_maskColor除去扫描框,其余部分阴影颜色
qrcv_qrCodeTipText
qrcv_rectWidth 扫描框的宽度
qrcv_scanLineColor扫描线的颜色「扫描线和默认的扫描线图片的颜色」
qrcv_scanLineMargin扫描线距离上下或者左右边框的间距
qrcv_scanLineSize扫描线的宽度
qrcv_toolbarHeight Toolbar 的高度,通过该属性来修正由 Toolbar 导致扫描框在垂直方向上的偏差
qrcv_topOffset扫描框距离 toolbar 底部的距离-->
<cn.bingoogolapple.qrcode.zxing.ZXingView
android:id="@+id/zxingview"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:qrcv_animTime="1000"
app:qrcv_barCodeTipText="将条码放入框内,即可自动扫描"
app:qrcv_barcodeRectHeight="140dp