您的位置:首页 > 其它

Zxing_使用说明

2016-07-18 11:16 302 查看


一、概述

相信Adnroid开发都知道,有四款扫描器,Zxing 、Zbar ,Barcode4JOkapiBarcode 前二者应用较广泛,至于介绍与区别就在此阐述,网上有很多。此文主要介绍在在使用过程中,官方客户端各种达不到需求。相信很多童鞋都有此体会,所以借此机会就在Zxing
官方客户端基础上修改,去除无用功能并二次封装达到可扩展。
官方客户端目前问题汇总
设置功能多余
竖屏后不能正向扫描条形码
扫描框大小、颜色、扫描线配置不够灵活
无生成二维码、主动识别二维码功能

介于以上问题,于是该库就华丽的诞生
修复竖屏不能正向扫描条形码
可定制扫描框与扫描线样式
加入创建二维码、识别图片中的二维码功能


二、效果图




三、下载APK体验


四、引用

本库依赖使用Gradle构建时添加一下即可:
compile 'com.mylhyl:zxingscanner:1.1.1'

最新Zxing核心库点击查看,使用Gradle构建时如下:
compile 'com.google.zxing:core:3.2.1'

Gradle命令编译:gradle makeJar 或者参考下图,在android studio中执行



直接下载jar


五、使用

直接在
layout xml
使用
ScannerView
即可
<com.mylhyl.zxing.scanner.ScannerView
android:id="@+id/scanner_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />


重写
onResume
调用
mScannerView.onResume();

@Override
protected void onResume() {
mScannerView.onResume();
super.onResume();
}


注册扫描成功监听器
setOnScannerCompletionListener

/**
* 扫描成功后将调用
*
* @param rawResult    扫描结果
* @param parsedResult 结果类型
* @param barcode      扫描后的图像
*/
void OnScannerCompletion(Result rawResult, ParsedResult parsedResult, Bitmap barcode);


调用如下方法获取类型
ParsedResultType type = parsedResult.getType();


可根据
type
强转为相应的对象,按项目需求处理。每个项目都有不同的需求,所以此库将最终处理结果丢给你们自己咯,想怎么玩就怎么玩,下面代码是在 sample 中
switch (type) {
case ADDRESSBOOK:
AddressBookParsedResult addressResult = (AddressBookParsedResult) parsedResult;
bundle.putStringArray(Intents.AddressBookConnect.NAME, addressResult.getNames());
bundle.putStringArray(Intents.AddressBookConnect.NUMBER, addressResult.getPhoneNumbers());
bundle.putStringArray(Intents.AddressBookConnect.EMAIL, addressResult.getEmails());
break;
case URI:
URIParsedResult uriParsedResult = (URIParsedResult) parsedResult;
bundle.putString(Intents.URIContents.URI, uriParsedResult.getURI());
break;
case TEXT:
bundle.putString(Intents.Scan.RESULT, rawResult.getText());
break;
}


生成二维码
Bitmap bitmap = QREncode.encodeQR(MainActivity.this,
new QREncode.Builder()
.setColor(getResources().getColor(R.color.colorPrimary))//二维码颜色
.setParsedResultType(ParsedResultType.URI)//二维码类型
.setContents("https://github.com/mylhyl")//二维码内容
.build());
imageView.setImageBitmap(bitmap);


六、样式设置

方法名说明默认值
toggleLight切换闪光灯关false
setMediaResId设置扫描完成播放声音
setLaserFrameBoundColor扫描框4角颜色绿色0xff00ff00
setLaserFrameCornerLength扫描框4角长度15dp
setLaserFrameCornerWidth扫描框4角宽度2dp
setLaserColor扫描线颜色绿色0xff00ff00
setLaserLineResId条形扫描线图片资源
setLaserGridLineResId网格扫描线资源
setLaserLineHeight扫描线高度2dp
setLaserFrameSize设置扫描框大小屏幕5/8
setLaserFrameTopMargin设置扫描框与屏幕距离屏幕5/8-状态
setDrawTexttext -> 内容 

textSize -> 文字大小 

textColor -> 文字颜色 

isBottom -> 是否在扫描框下方 

textMargin -> 离扫描框间距
text -> 将二维码放入框内,即可自动扫描 

textSize -> 16sp 

textColor -> 白色 

isBottom -> true 

textMargin -> 20dp
项目下载地址:https://github.com/mylhyl/Android-Zxing
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: