GitHub项目的链接地址

目录

  • 功能介绍
  • 常见问题
  • 效果图与示例 apk
  • Gradle 依赖
  • 布局文件
  • 自定义属性说明
  • 接口说明
  • 关于我

功能介绍

  • ZXing 生成可自定义颜色、带 logo 的二维码
  • ZXing 扫描二维码
  • ZXing 识别图库中的二维码图片
  • 可以设置用前置摄像头扫描
  • 可以控制闪光灯,方便夜间使用
  • 可以定制各式各样的扫描框
  • 可定制全屏扫描或只识别扫描框区域内的二维码
  • ZBar 扫描二维码「扫描中文会有乱码,如果对中文有要求,请使用 ZXing」

常见问题

1.部分手机无法扫描出结果,扫描预览界面二维码被压缩

使用的时候将 Toolbar 或者其他 View 盖在 ZBarView 或者 ZXingView 的上面,让 ZBarView 或者 ZXingView 填充屏幕宽高。ZXing 布局文件参考 ZBar 布局文件参考

2.出现黑屏

在自己项目里集成时记得在 onDestroy 方法中调用 mQRCodeView.onDestroy(),在 onStop 方法中调用 mQRCodeView.stopCamera(),否则会出现黑屏。如果没执行前面提到的这两个方法出现黑屏的话,那你就只能加上前面提到的两个方法后,重启手机后重新运行了

3.Gradle 依赖时提示找不到cn.bingoogolapple:bga-libraryname:「latestVersion」@aar

 「latestVersion」指的是左边这个 maven-central 徽章后面的「数字」,请自行替换。请不要再来问我「latestVersion」是什么了

效果图与示例 apk

    

点击下载 ZXingDemo.apk或扫描下面的二维码安装 点击下载 ZBarDemo.apk或扫描下面的二维码安装

Gradle 依赖

 「latestVersion」指的是左边这个 maven-central 徽章后面的「数字」,请自行替换。

ZXing

dependencies {compile 'com.google.zxing:core:3.3.0'compile 'cn.bingoogolapple:bga-qrcodecore:latestVersion@aar'compile 'cn.bingoogolapple:bga-zxing:latestVersion@aar'
}

ZBar

dependencies {compile 'cn.bingoogolapple:bga-qrcodecore:latestVersion@aar'compile 'cn.bingoogolapple:bga-zbar:latestVersion@aar'
}

布局文件

ZXing

<cn.bingoogolapple.qrcode.zxing.ZXingViewandroid:id="@+id/zxingview"style="@style/MatchMatch"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="#33FFFFFF"app:qrcv_rectWidth="200dp"app:qrcv_scanLineColor="@color/colorPrimaryDark"app:qrcv_scanLineSize="1dp"app:qrcv_topOffset="90dp" />

ZBar

<cn.bingoogolapple.qrcode.zbar.ZBarViewandroid:id="@+id/zbarview"style="@style/MatchMatch"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_isShowDefaultScanLineDrawable="true"app:qrcv_maskColor="#33FFFFFF"app:qrcv_rectWidth="200dp"app:qrcv_scanLineColor="@color/colorPrimaryDark"app:qrcv_topOffset="90dp" />

自定义属性说明

属性名 说明 默认值
qrcv_topOffset 扫描框距离 toolbar 底部的距离 90dp
qrcv_cornerSize 扫描框边角线的宽度 3dp
qrcv_cornerLength 扫描框边角线的长度 20dp
qrcv_cornerColor 扫描框边角线的颜色 @android:color/white
qrcv_rectWidth 扫描框的宽度 200dp
qrcv_barcodeRectHeight 条码扫样式描框的高度 140dp
qrcv_maskColor 除去扫描框,其余部分阴影颜色 #33FFFFFF
qrcv_scanLineSize 扫描线的宽度 1dp
qrcv_scanLineColor 扫描线的颜色「扫描线和默认的扫描线图片的颜色」 @android:color/white
qrcv_scanLineMargin 扫描线距离上下或者左右边框的间距 0dp
qrcv_isShowDefaultScanLineDrawable 是否显示默认的图片扫描线「设置该属性后 qrcv_scanLineSize 将失效,可以通过 qrcv_scanLineColor 设置扫描线的颜色,避免让你公司的UI单独给你出特定颜色的扫描线图片」 false
qrcv_customScanLineDrawable 扫描线的图片资源「默认的扫描线图片样式不能满足你的需求时使用,设置该属性后 qrcv_isShowDefaultScanLineDrawable、qrcv_scanLineSize、qrcv_scanLineColor 将失效」 null
qrcv_borderSize 扫描边框的宽度 1dp
qrcv_borderColor 扫描边框的颜色 @android:color/white
qrcv_animTime 扫描线从顶部移动到底部的动画时间「单位为毫秒」 1000
qrcv_isCenterVertical 扫描框是否垂直居中,该属性为true时会忽略 qrcv_topOffset 属性 false
qrcv_toolbarHeight Toolbar 的高度,通过该属性来修正由 Toolbar 导致扫描框在垂直方向上的偏差 0dp
qrcv_isBarcode 是否是扫条形码 false
qrcv_tipText 提示文案 null
qrcv_tipTextSize 提示文案字体大小 14sp
qrcv_tipTextColor 提示文案颜色 @android:color/white
qrcv_isTipTextBelowRect 提示文案是否在扫描框的底部 false
qrcv_tipTextMargin 提示文案与扫描框之间的间距 20dp
qrcv_isShowTipTextAsSingleLine 是否把提示文案作为单行显示 false
qrcv_isShowTipBackground 是否显示提示文案的背景 false
qrcv_tipBackgroundColor 提示文案的背景色 #22000000
qrcv_isScanLineReverse 扫描线是否来回移动 true
qrcv_isShowDefaultGridScanLineDrawable 是否显示默认的网格图片扫描线 false
qrcv_customGridScanLineDrawable 扫描线的网格图片资源 nulll
qrcv_isOnlyDecodeScanBoxArea 是否只识别扫描框区域的二维码 false

接口说明

QRCodeView

/**
 * 设置扫描二维码的代理
 *
 * @param delegate 扫描二维码的代理
 */
public void setDelegate(Delegate delegate)/**
 * 显示扫描框
 */
public void showScanRect()/**
 * 隐藏扫描框
 */
public void hiddenScanRect()/**
 * 打开后置摄像头开始预览,但是并未开始识别
 */
public void startCamera()/**
 * 打开指定摄像头开始预览,但是并未开始识别
 *
 * @param cameraFacing  Camera.CameraInfo.CAMERA_FACING_BACK or Camera.CameraInfo.CAMERA_FACING_FRONT
 */
public void startCamera(int cameraFacing)/**
 * 关闭摄像头预览,并且隐藏扫描框
 */
public void stopCamera()/**
 * 延迟1.5秒后开始识别
 */
public void startSpot()/**
 * 延迟delay毫秒后开始识别
 *
 * @param delay
 */
public void startSpotDelay(int delay)/**
 * 停止识别
 */
public void stopSpot()/**
 * 停止识别,并且隐藏扫描框
 */
public void stopSpotAndHiddenRect()/**
 * 显示扫描框,并且延迟1.5秒后开始识别
 */
public void startSpotAndShowRect()/**
 * 打开闪光灯
 */
public void openFlashlight()/**
 * 关闭散光灯
 */
public void closeFlashlight()

QRCodeView.Delegate 扫描二维码的代理

/**
 * 处理扫描结果
 *
 * @param result
 */
void onScanQRCodeSuccess(String result)/**
 * 处理打开相机出错
 */
void onScanQRCodeOpenCameraError()

QRCodeDecoder 解析二维码图片。几个重载方法都是耗时操作,请在子线程中调用。

/**
 * 同步解析本地图片二维码。该方法是耗时操作,请在子线程中调用。
 *
 * @param picturePath 要解析的二维码图片本地路径
 * @return 返回二维码图片里的内容 或 null
 */
public static String syncDecodeQRCode(String picturePath)/**
 * 同步解析bitmap二维码。该方法是耗时操作,请在子线程中调用。
 *
 * @param bitmap 要解析的二维码图片
 * @return 返回二维码图片里的内容 或 null
 */
public static String syncDecodeQRCode(Bitmap bitmap)

QRCodeEncoder 创建二维码图片。几个重载方法都是耗时操作,请在子线程中调用。

/**
 * 同步创建黑色前景色、白色背景色的二维码图片。该方法是耗时操作,请在子线程中调用。
 *
 * @param content 要生成的二维码图片内容
 * @param size    图片宽高,单位为px
 */
public static Bitmap syncEncodeQRCode(String content, int size)/**
 * 同步创建指定前景色、白色背景色的二维码图片。该方法是耗时操作,请在子线程中调用。
 *
 * @param content         要生成的二维码图片内容
 * @param size            图片宽高,单位为px
 * @param foregroundColor 二维码图片的前景色
 */
public static Bitmap syncEncodeQRCode(String content, int size, int foregroundColor)/**
 * 同步创建指定前景色、白色背景色、带logo的二维码图片。该方法是耗时操作,请在子线程中调用。
 *
 * @param content         要生成的二维码图片内容
 * @param size            图片宽高,单位为px
 * @param foregroundColor 二维码图片的前景色
 * @param logo            二维码图片的logo
 */
public static Bitmap syncEncodeQRCode(String content, int size, int foregroundColor, Bitmap logo)/**
 * 同步创建指定前景色、指定背景色、带logo的二维码图片。该方法是耗时操作,请在子线程中调用。
 *
 * @param content         要生成的二维码图片内容
 * @param size            图片宽高,单位为px
 * @param foregroundColor 二维码图片的前景色
 * @param backgroundColor 二维码图片的背景色
 * @param logo            二维码图片的logo
 */
public static Bitmap syncEncodeQRCode(String content, int size, int foregroundColor, int backgroundColor, Bitmap logo)

详细用法请查看ZBarDemo

详细用法请查看ZXingDemo

扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式相关推荐

  1. QRCode 扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式...

    QRCode 扫描二维码.扫描条形码.相册获取图片后识别.生成带 Logo 二维码.支持微博微信 QQ 二维码扫描样式 参考链接:https://github.com/bingoogolapple/B ...

  2. ReactNative从相册选取二维码 进行扫描识别、扫描条形码、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式

    我的demo 地址 http://github.com/yrjwcharm/react-native-scanner-qrcode 博友直接 下载压缩包 或者git clone 因为我的版本比较高.所 ...

  3. 实现扫描二维码和生成带logo的二维码

    欢迎来到风的博客 今天讲的是如何引用google的zxing库实现扫描二维码和生成带logo的二维码,源码库可以从github上下载[https://github.com/zxing/zxing];在 ...

  4. Android Studio 扫描识别二维码(包含闪光灯和本地二维码)、生成二维码、生成带logo的二维码

    一.测试如下: 1.扫描识别二维码,扫描结果多少 2.生成二维码.生成带logo的二维码 二.添加依赖: 1.在Project的build.gradle中添加maven { url 'https:// ...

  5. iOS 生成带 logo 的二维码,区域截屏保存至相册(小功能二连发 (一))

    原文链接:http://www.jianshu.com/p/36e9f012ef39 生成带 logo 的二维码 区域截屏相关 -- 由3033分享 开篇 最近项目需要搞了几个相对独立的小功能,今天有 ...

  6. python——生成带logo的二维码图片并且保存、控制打印机打印图片二维码、整合打印(获取输入框的值)、打包成exe文件

    1.生成带logo的二维码图片并且保存 前提条件:在D盘里有logo.png的图片,生成的二维码图片在D盘里的111.png import qrcode from PIL import Image# ...

  7. Android Studio 生成二维码、生成带logo的二维码

    1.生成二维码: 2.生成logo的二维码: 一.引入依赖 首先在libs文件目录下放进jar包zxing.jar,要下载zxing.jar就点击链接:下载zxing.jar(记得点击"Cd ...

  8. .NET ZXING 生成带logo的二维码和普通二维码及条型码

    工作中使用到了,就随笔记下了.希望可以帮助有需要的同学们. /// <summary>         /// 生成二维码         /// </summary>     ...

  9. 使用zxing生成带logo的二维码图片,自动调节logo图片相对二维码图片的大小

    使用zxing生成带logo的二维码图片,自动调节logo图片相对二维码图片的大小  * 可选是否带logo,可选是否保存二维码图片:结果返回base64编码的图片数据字符串  * 页面显示:< ...

最新文章

  1. int *p=NULL; *p=9;是错误的!
  2. 常用邮件客户端软件设置
  3. OpenCV FLANN在数据集中搜索查询图片的实例(附完整代码)
  4. dos常用文件操作命令
  5. elementui源码_Element UI 终于还是来啦
  6. 多链NFT市场Polkarare获加密投资机构DFG战略投资
  7. 三极晶体管放大电路实验
  8. java数据结构编写二叉树_java 数据结构与算法 BinaryTree二叉树编写
  9. 计算机上的mrc功能,计算器上的MRC有什么功能?
  10. python飞机大战游戏代码_python实现飞机大战小游戏
  11. VSCode:查看二进制文件
  12. 不一样的设计!20个国外优秀的电子商务网站
  13. Python pytz时区转换
  14. 转移Package Cache文件夹,转移Windows Installer文件夹
  15. 李白:下终南山过斛斯山人宿置酒
  16. TTL expired in transit
  17. golang转换时间格式报missing Location in call to Date
  18. 软件工程与计算机科学的区别
  19. 955 不加班公司名单:955.WLB
  20. scrapy 爬取指定贴吧

热门文章

  1. 全国第一所蚂蚁链大学落地江西 2020区块链创新应用高峰论坛圆满落幕
  2. 蓄冷罐典型架构和原理
  3. MySQL 常见面试题汇总
  4. mysql常见命令,查看数据库版本信息
  5. 计算机基础知识操作题office2010,计算机系统操作师(中级)试题集(Office 2010版)...
  6. ClearCase指南-基础篇(连载一)
  7. 互联网产品都是怎么做推广的?(app产品推广)
  8. B站视频控制代码、bilibli快捷键
  9. 【Web技术】1176- 前端模块依赖关系分析与应用
  10. TFS 数据库表信息