:running:BGAQRCode-Android:running: [ ![Download](https://api.bintray.com/packages/bingoogolapple/maven/bga-qrcode-core/images/download.svg) ](https://bintray.com/bingoogolapple/maven/bga-qrcode-core/_latestVersion)
============
## 目录
* [功能介绍](#功能介绍)
* [常见问题](#常见问题)
* [效果图与示例 apk](#效果图与示例-apk)
* [Gradle 依赖](#gradle-依赖)
* [布局文件](#布局文件)
* [自定义属性说明](#自定义属性说明)
* [接口说明](#接口说明)
* [关于我](#关于我)
## 功能介绍
根据[之前公司](http://www.iqegg.com)的产品需求,参考 [barcodescanner](https://github.com/dm77/barcodescanner) 改的,希望能帮助到有生成二维码、扫描二维码、识别图片二维码等需求的猿友。修改幅度较大,也就没准备针对 [barcodescanner](https://github.com/dm77/barcodescanner) 库提交PR。
- [x] 可定制各式各样的扫描框
- [x] 可定制全屏扫描或只识别扫描框区域内码
- [x] 可定制要识别的码的格式(详细用法查看 TestScanActivity 中的 onClick 方法)
- [x] 可以控制闪光灯,方便夜间使用
- [x] 可以设置用前置摄像头扫描
- [x] 可以二指缩放预览
- [x] 可以监听环境亮度,提示用户打开、关闭闪光灯
- [x] 识别到比较小的码时自动放大
***
- [x] ZXing 生成可自定义颜色、带 logo 的二维码
- [x] ZXing 生成一维码
- [x] ZXing 扫描条码、二维码
- [x] ZXing 识别图库中的条码、二维码图片
***
- [x] ZBar 扫描条码、二维码「已解决中文乱码问题」
- [x] ZBar 识别图库中的条码、二维码图片
## 常见问题
#### 1.部分手机无法扫描出结果,扫描预览界面二维码被压缩
使用的时候将 Toolbar 或者其他 View 盖在 ZBarView 或者 ZXingView 的上面,让 ZBarView 或者 ZXingView 填充屏幕宽高。[ZXing 布局文件参考](https://github.com/bingoogolapple/BGAQRCode-Android/blob/master/zxingdemo/src/main/res/layout/activity_test_scan.xml) [ZBar 布局文件参考](https://github.com/bingoogolapple/BGAQRCode-Android/blob/master/zbardemo/src/main/res/layout/activity_test_scan.xml)
#### 2.出现黑屏
在自己项目里集成时记得在 onDestroy 方法中调用 mQRCodeView.onDestroy(),在 onStop 方法中调用 mQRCodeView.stopCamera(),否则会出现黑屏。如果没执行前面提到的这两个方法出现黑屏的话,那你就只能加上前面提到的两个方法后,重启手机后重新运行了
#### 3.Gradle 依赖时提示找不到cn.bingoogolapple:bga-libraryname:「latestVersion」
[ ![Download](https://api.bintray.com/packages/bingoogolapple/maven/bga-qrcode-core/images/download.svg) ](https://bintray.com/bingoogolapple/maven/bga-qrcode-core/_latestVersion)「latestVersion」指的是左边这个 Download 徽章后面的「数字」,请自行替换。***请不要再来问我「latestVersion」是什么了***
## 效果图与示例 apk
![zbar109](https://cloud.githubusercontent.com/assets/8949716/17475203/5d788730-5d8c-11e6-836a-61e885e05453.gif)
![zxingbarcode109](https://cloud.githubusercontent.com/assets/8949716/17475222/76339bd4-5d8c-11e6-934f-96db6917f69b.gif)
![zxingdecode109](https://cloud.githubusercontent.com/assets/8949716/17475235/8c03b2be-5d8c-11e6-931d-a50942a8ab75.gif)
![zxingqrcode109](https://cloud.githubusercontent.com/assets/8949716/17475249/a551cc06-5d8c-11e6-85dc-4e2e07051cae.gif)
![iqegg](https://cloud.githubusercontent.com/assets/8949716/17475267/bd9c0a60-5d8c-11e6-8487-c732306debe2.gif)
| [点击下载 ZXingDemo.apk](http://fir.im/ZXingDemo)或扫描下面的二维码安装 | [点击下载 ZBarDemo.apk](http://fir.im/ZBarDemo)或扫描下面的二维码安装 |
| :------------: | :------------: |
| ![ZXingDemo apk文件二维码](http://bgashare.bingoogolapple.cn/qrcode/zxingdemoapk.png) | ![ZBarDemo apk文件二维码](http://bgashare.bingoogolapple.cn/qrcode/zbardemoapk.png) |
## Gradle 依赖
[ ![Download](https://api.bintray.com/packages/bingoogolapple/maven/bga-qrcode-core/images/download.svg) ](https://bintray.com/bingoogolapple/maven/bga-qrcode-core/_latestVersion)「latestVersion」指的是左边这个 Download 徽章后面的「数字」,请自行替换。***请不要再来问我「latestVersion」是什么了***
>ZXing
```groovy
dependencies {
implementation 'cn.bingoogolapple:bga-qrcode-zxing:latestVersion'
}
```
>ZBar
```groovy
dependencies {
implementation 'cn.bingoogolapple:bga-qrcode-zbar:latestVersion'
}
```
## 布局文件
>ZXing
```xml
<cn.bingoogolapple.qrcode.zxing.ZXingView
android: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
```xml
<cn.bingoogolapple.qrcode.zbar.ZBarView
android: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_cornerDisplayType | 扫描框边角线显示位置(相对于边框),默认值为中间 | center
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(已废弃,如果要垂直居中用 qrcv_verticalBias="0.5"来代替) | 扫描框是否垂直居中,该属性为true时会忽略 qrcv_topOffset 属性 | false
qrcv_verticalBias | 扫描框中心点在屏幕垂直方向的比例,当设置此值时,会忽略 qrcv_topOffset 属性 | -1
qrcv_toolbarHeight | Toolbar 的高度,通过该属性来修正由 Toolbar 导致扫描框在垂直方向上的偏差 | 0dp
qrcv_isBarcode | 扫描框的样式是否为扫条形码样式 | false
qrc
评论0
最新资源