### JCenter迁移说明
`JCenter`服务已经宣布停止维护,对于`旧版本`大家可以使用阿里云镜像引用,以后`新版本`将会发布在`JitPack`
#### 1、旧版本阿里云镜像引用方式
在项目根目录下的`build.gradle`文件中加入
```
allprojects {
repositories {
maven { url 'https://maven.aliyun.com/repository/jcenter' }
}
}
```
#### 1、新版本JitPack引用方式
在项目根目录下的`build.gradle`文件中加入
```
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
```
### 一、功能
- 支持全屏或局部扫描
- 定制扫描框颜色
- 扫描线样式
- 扫描提示语
- 创建二维码
- 识别图片中二维码
### 二、效果图
<img src="preview/gif.gif" width="240px"/>
### 三、[下载APK体验](https://www.90pan.com/b2339598)或手机扫描下面二维码
<img src="preview/qrdown.png"/>
### 四、引用
## 1、在线 本库内部已集成`zxing:core:3.4.0`
- 依赖使用 Gradle 构建时添加一下即可
```javascript
compile 'com.mylhyl:zxingscanner:2.2.0'
```
## 2、离线jar,需要手动添加 Zxing 核心库
- [jar包](https://github.com/mylhyl/Android-Zxing/tree/master/preview/lib)
- 也可自己打包jar文件打开终端,切换置项目根据目录,执行命令:gradlew makeJar
- [最新Zxing核心库点击查看](http://jcenter.bintray.com/com/google/zxing/core/)取出aar
- 也可使用Gradle构建时如下:
```javascript
compile 'com.google.zxing:core:3.4.0'
```
[gradle makeJar](http://blog.csdn.net/hupei/article/details/51886221) 或者参考下图,在android studio中执行
![这里写图片描述](http://img.blog.csdn.net/20160711135615587)
- [直接下载jar](preview)
### 五、使用
[例子](https://github.com/mylhyl/Android-Zxing/blob/master/sample/src/main/java/com/mylhyl/zxing/scanner/sample/OptionsScannerActivity.java)
直接在`layout xml`使用`ScannerView`即可
```xml
<com.mylhyl.zxing.scanner.ScannerView
android:id="@+id/scanner_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
```
###### 注意生命周期中的使用
重写`onResume`调用`mScannerView.onResume();`
```java
@Override
protected void onResume() {
mScannerView.onResume();
super.onResume();
}
@Override
protected void onPause() {
mScannerView.onPause();
super.onPause();
}
```
注册扫描成功监听器`mScannerView.setOnScannerCompletionListener`
```java
/**
* 扫描成功后将调用
*
* @param rawResult 扫描结果
* @param parsedResult 结果类型
* @param barcode 扫描后的图像
*/
void OnScannerCompletion(Result rawResult, ParsedResult parsedResult, Bitmap barcode);
```
开启闪光灯
```java
mScannerView.toggleLight(true);//开
mScannerView.toggleLight(false);//关
```
调用如下方法获取类型
```java
ParsedResultType type = parsedResult.getType();
```
可根据`type`强转为相应的对象,按项目需求处理。每个项目都有不同的需求,所以此库将最终处理结果丢给你们自己咯,想怎么玩就怎么玩,下面代码是在 sample 中
```java
switch (type) {
case ADDRESSBOOK:
AddressBookParsedResult addressBook = (AddressBookParsedResult) parsedResult;
bundle.putSerializable(Intents.Scan.RESULT, new AddressBookResult(addressBook));
break;
case URI:
URIParsedResult uriParsedResult = (URIParsedResult) parsedResult;
bundle.putString(Intents.Scan.RESULT, uriParsedResult.getURI());
break;
case TEXT:
bundle.putString(Intents.Scan.RESULT, rawResult.getText());
break;
}
```
生成二维码使用
```java
//联系人类型
Bitmap bitmap = new QREncode.Builder(this)
.setParsedResultType(ParsedResultType.ADDRESSBOOK)
.setAddressBookUri(contactUri).build().encodeAsBitmap();
//文本类型
Bitmap bitmap = new QREncode.Builder(this)
.setColor(getResources().getColor(R.color.colorPrimary))//二维码颜色
//.setParsedResultType(ParsedResultType.TEXT)//默认是TEXT类型
.setContents("我是石头")//二维码内容
.setLogoBitmap(logoBitmap)//二维码中间logo
.build().encodeAsBitmap();
```
解析图中二维码
```java
public static void decodeQR(String picturePath, OnScannerCompletionListener listener);
public static void decodeQR(Bitmap srcBitmap, final OnScannerCompletionListener listener)
```
### 六、样式设置
说明:`1.6.0`以后版本将废弃`ScannerView`样式设置,使用新增`ScannerOptions`,后续版本只会在`ScannerOptions`中维护。
具体api请看[ScannerOptions.Builder](https://github.com/mylhyl/Android-Zxing/blob/master/zxingscanner/src/main/java/com/mylhyl/zxing/scanner/ScannerOptions.java)
### 七、注意事项
权限
```xml
<uses-permission android:name="android.permission.CAMERA" />
```
### 八、常见问题
* 对于`setLaserFrameTopMargin`方法,扫描区域偏移的问题[issues-13](https://github.com/mylhyl/Android-Zxing/issues/13)
* 可以在扫描成功后,调用`restartPreviewAfterDelay`连续扫描
* 对于加密后的二维码,判断二维码类型可以如下:
```java
//重新包装`Result`,`decryptText`为解密后的内容
Result decryptResult = new Result(decryptText, rawResult.getRawBytes(),
rawResult.getNumBits(), rawResult.getResultPoints(),
rawResult.getBarcodeFormat(), rawResult.getTimestamp());
//转换扫描结果为类型枚举
ParsedResult decryptParsedResult = Scanner.parseResult(decryptResult);
final ParsedResultType decryptType = decryptParsedResult.getType();
switch (decryptType) {
//类型分支
case :
break;
}
```
### 联系方式
* 可能会因为工作忙碌原因没有及时回复,大家方便的话可以加我个人微信号:48025211,备注:github
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
android google zxing 可配置扫描框、线样式 ,生成二维码 (115个子文件)
gradlew.bat 2KB
gif.gif 597KB
.gitignore 112B
.gitignore 8B
.gitignore 8B
build.gradle 1KB
build.gradle 1KB
build.gradle 692B
settings.gradle 36B
gradlew 5KB
core-3.3.0.jar 528KB
lite-http-3.0.1.jar 148KB
zxingscanner-2.1.4.jar 89KB
gradle-wrapper.jar 52KB
CameraConfigurationUtils.java 19KB
ScannerOptions.java 18KB
ViewfinderView.java 16KB
QRCodeEncoder.java 16KB
CameraManager.java 16KB
ScannerView.java 13KB
QREncode.java 11KB
CameraConfigurationManager.java 10KB
MainActivity.java 9KB
ScannerActivity.java 8KB
PickPictureTotalActivity.java 8KB
VCardContactEncoder.java 6KB
DecodeHandler.java 6KB
CameraSurfaceView.java 6KB
ParserUriToVCard.java 6KB
BarcodeActivity.java 5KB
BasicScannerActivity.java 5KB
ScannerViewHandler.java 5KB
OptionsScannerActivity.java 5KB
QRDecode.java 4KB
AutoFocusManager.java 4KB
BeepManager.java 4KB
DecodeThread.java 4KB
ContactEncoder.java 4KB
MECARDContactEncoder.java 4KB
Scanner.java 3KB
AddressBookResult.java 3KB
OpenCameraInterface.java 3KB
VCardFieldFormatter.java 3KB
DecodeFormatManager.java 3KB
DeCodeActivity.java 3KB
PickPictureActivity.java 2KB
VCardTelDisplayFormatter.java 2KB
InvertedLuminanceSource.java 2KB
PreviewCallback.java 2KB
AddressBookActivity.java 2KB
UriActivity.java 2KB
OpenCamera.java 1KB
SizeComparator.java 1KB
PickPictureTotalAdapter.java 1KB
Formatter.java 1KB
OnScannerCompletionListener.java 974B
TextActivity.java 941B
Picture.java 926B
GeoResult.java 895B
SMSResult.java 863B
PickPictureAdapter.java 852B
CameraFacing.java 837B
TelResult.java 708B
ProductResult.java 669B
SortPictureList.java 568B
TextResult.java 568B
URIResult.java 541B
APP.java 489B
BasicActivity.java 469B
QRLogoBorderType.java 432B
Barcode.java 430B
ISBNResult.java 405B
Result.java 164B
wb_wlog_blow_bg_night.jpg 21KB
README.md 6KB
weixin_beep.ogg 10KB
baidu_beep.ogg 8KB
beep.ogg 6KB
zfb_grid_scan_line.png 21KB
qrcode.png 16KB
ic_function_item_fahuoguangli.png 14KB
ic_launcher.png 10KB
ic_launcher.png 8KB
ic_launcher.png 5KB
taskdetail_menubar_ico_report_hover.png 4KB
ic_pictures_failure.png 4KB
connect_logo.png 4KB
ic_launcher.png 3KB
btn_wheelview_ok_normal.png 2KB
ic_launcher.png 2KB
qrdown.png 2KB
wx_scan_line.png 1KB
ic_arrow_hover.png 776B
proguard-rules.pro 678B
proguard-rules.pro 678B
gradle-wrapper.properties 236B
activity_main.xml 7KB
AndroidManifest.xml 2KB
activity_pick_picture_total_list_item.xml 2KB
activity_barcode.xml 2KB
共 115 条
- 1
- 2
资源评论
三季人G
- 粉丝: 113
- 资源: 2369
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab实现用有限元法计算电磁场的Matlab工具 .rar
- 基于matlab实现有限元算法 计算电磁场问题 边界条件包括第一类边界和第二类边界.rar
- 基于matlab实现用于计算不同车重下的电动汽车动力性和经济性.rar
- 基于matlab实现遗传算法求解多车场车辆路径问题 有多组算例可以用.rar
- 浏览器.apk
- 基于matlab实现是一个matlab中的power system 中搭建的一个模型
- 基于JSP毕业设计-教学管理系统(源代码+论文).zip
- 基于JSP毕业设计-家政管理系统-毕业设计.zip
- 基于Python实现淘宝商品评论采集(含逆向)源代码
- 基于matlab实现多目标进化算法NSGAⅡ&Matlab讲解.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功