登录

去注册 忘记密码?

登录

注册

去登录

  • 扫码关注公众号
  • 发送“我爱安卓
  • 即可获取验证码

注册

解锁回答区域

  • 扫码关注公众号
  • 发送“我爱安卓

若你登陆,将永久解锁;
若未登录,仅本机解锁。

解锁回答区域

获取注册验证码

  • 扫码关注公众号
  • 发送“我爱安卓
  • 即可获取验证码

一个Android库,用于扫描和生成基于ZXing和ZBar的条形码

wangpeiyuan   2019-01-14 23:31   收藏

ZxingBarCode

Introduction

An Android library to scanner and generate barcode based on ZXing and ZBar.

Screenshots

decode-success
decode-success-tip
generate-success

Features

  • 支持扫描图片中的条形码(包含多个),可选择使用 ZXing 或 ZBar,默认先使用 ZBar 失败之后再使用 ZXing,以此来提高识别的成功率
  • 支持生成自定义宽高、自定义颜色、设置 logo、背景图片等个性化的二维码

Getting started

在项目的根节点的 build.gradle 中添加如下代码

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

在项目的 build.gradle 中添加

dependencies {
    implementation 'com.github.wangpeiyuan:ZxingBarCode:v1.0.0'
}

Usage

图片解析

使用 ZxingBarCode.decodeCodeBar

参数说明:

属性名说明
imageLocalPath图片本地地址
bitmapbitmap
databitmap 的 byte[]
isMultitrue 支持解析多个,false 返回第一个解析到结果
decoderListener
decodeType解析器的类型 ZBar/ZXing/Both

可以使用 ZxingBarCode.setMaxBitmapSize 来限制图片的大小减少内存,如果只解析二维码的话可以设置 ZxingBarCode.setOnlyQRCode 加快解析速度

当然也可以使用 ZBarDecoderZXingDecoder 自定义使用

二维码生成

使用 ZxingBarCode.encodeQRCode

QRCodeParams 参数说明

属性名说明
content二维码内容
width宽度
height高度
margin边缘空白边距
bgColor背景颜色,默认白色
preColor信息部分的颜色,默认黑色
preBitmap目标图片 (preBitmap != null, 黑色色块将会被该图片像素色值替代),选用的Bitmap图片一定不能有白色色块,否则会识别不出来
logoInfologo 图片信息
backgroundInfo背景图片信息

LogoInfo 参数说明

属性名说明
logoBitmaplogo 图片
paddingWhitelogo 边缘的白色大小
roundlogo 边缘的白色弧度
strokeColorlogo 边框颜色,默认无

BackgroundInfo 参数说明

属性名说明
bgBitmap背景图片
barCodeLeft条形码在背景图左边顶点
barCodeTop条形码在背景图上边顶点
barCodeAlpha条形码的透明度 0 ~ 100,默认 100

TODO

  • [ ] 优化 ARGB 转换 YUV 的速度
  • [ ] 增加相机扫描(不确定是否要)

Thanks

大部分代码基于以下第三方库

  1. barcodescanner
  2. zxing

License

Apache License, Version 2.0

项目地址:https://github.com/wangpeiyuan/ZxingBarCode