# zBarLibary
**Repository Path**: chinasoft2_ohos/zBarLibary
## Basic Information
- **Project Name**: zBarLibary
- **Description**: zxing二维码生成、识别
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 1
- **Created**: 2021-04-23
- **Last Updated**: 2021-08-31
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# zBarLibary
#### 项目介绍
- 项目名称:zBarLibary二维码扫描控件
- 所属系列:openharmony的第三方组件适配移植
- 功能:实现二维码生成、扫描
- 项目移植状态:主功能完成,部分功能目前openharmonySDK不支持
- 调用差异:无
- 开发版本:sdk6,DevEco Studio2.2 Beta1
- 基线版本: Release 1.4.2
#### 效果演示
#### 安装教程
1.在项目根目录下的build.gradle文件中,
```
allprojects {
repositories {
maven {
url 'https://s01.oss.sonatype.org/content/repositories/releases/'
}
}
}
```
2.在entry模块的build.gradle文件中,
```
dependencies {
implementation('com.gitee.chinasoft_ohos:zBarLibary:1.0.0')
......
}
```
在sdk6,DevEco Studio2.2 Beta1下项目可直接运行
如无法运行,删除项目.gradle,.idea,build,gradle,build.gradle文件,
并依据自己的版本创建新项目,将新项目的对应文件复制到根目录下
#### 使用说明
## 1.识别二维码
QrConfig qrConfig = new QrConfig.Builder() .setDesText("(识别二维码)")//扫描框下文字 .setShowDes(false)//是否显示扫描框下面文字 .setShowLight(true)//显示手电筒按钮 .setShowTitle(true)//显示Title .setShowAlbum(true)//显示从相册选择按钮 .setCornerColor(Color.WHITE)//设置扫描框颜色 .setLineColor(Color.WHITE)//设置扫描线颜色 .setLineSpeed(QrConfig.LINE_MEDIUM)//设置扫描线速度 .setScanType(QrConfig.TYPE_QRCODE)//设置扫码类型(二维码,条形码,全部,自定义,默认为二维码) .setScanViewType(QrConfig.SCANVIEW_TYPE_QRCODE)//设置扫描框类型(二维码还是条形码,默认为二维码) .setCustombarcodeformat(QrConfig.BARCODE_I25)//此项只有在扫码类型为TYPE_CUSTOM时才有效 .setPlaySound(true)//是否扫描成功后bi~的声音 .setDingPath("resources/rawfile/test.mp3")//设置提示音(不设置为默认的Ding~) .setIsOnlyCenter(true)//是否只识别框中内容(默认为全屏识别) .setTitleText("扫描二维码")//设置Tilte文字 .setTitleBackgroudColor(Color.BLUE)//设置状态栏颜色 .setTitleTextColor(Color.BLACK)//设置Title文字颜色 .setShowZoom(false)//是否手动调整焦距 .setAutoZoom(false)//是否自动调整焦距 .setFingerZoom(false)//是否开始双指缩放 .setScreenOrientation(QrConfig.SCREEN_PORTRAIT)//设置屏幕方向 .setDoubleEngine(false)//是否开启双引擎识别(仅对识别二维码有效,并且开启后只识别框内功能将失效) .setLooperScan(false)//是否连续扫描二维码 .setLooperWaitTime(5*1000)//连续扫描间隔时间 .setScanLineStyle(ScanLineView.style_radar)//扫描动画样式 .setAutoLight(false)//自动灯光 .setShowVibrator(false)//是否震动提醒 .create(); QrManager.getInstance().init(qrConfig).startScan(MainAbilitySlice.this, new QrManager.OnScanResultCallback() { @Override public void onScanSuccess(ScanResult rs) { System.out.println(rs.getContent()); } });##### 具体使用可参考Demo ## 2.生成码 ### 2.1生成二维码
PixelMap qrCode = QRUtils.getInstance().createQRCode("www.qq.com");#### 2.1.1生成二维码并添加Logo
try { ResourceManager manager = getResourceManager(); String mediaPath = getResourceManager().getMediaPath(ResourceTable.Media_icon); Resource resource1 = null; resource1 = manager.getRawFileEntry(mediaPath).openRawFile(); ImageSource.SourceOptions sourceOptions = new ImageSource.SourceOptions(); ImageSource imageSource = ImageSource.create(resource1, sourceOptions); PixelMap pixelMap = imageSource.createPixelmap(null); qrCode = QRUtils.getInstance().createQRCodeAddLogo(et_qr_content.getText().toString(), pixelMap); } catch (IOException e) { e.printStackTrace(); } catch (NotExistException e) { e.printStackTrace(); } catch (WrongTypeException e) { e.printStackTrace(); }## 3.识别本地 ### 3.1 识别本地二维码
String s = QRUtils.getInstance().decodeQRcode(Image); String s1 = QRUtils.getInstance().decodeQRcodeByZxing(PixelMap);## 4.参数描述 | name | format | description | | ------------- |:-------------:| :-------------:| | setDesText | String | 设置扫描框下方描述文字 | | setShowDes | Boolean | 设置是否显示扫描框下方描述文字 | | setShowLight | Boolean | 是否开启手电筒功能 | | setShowAlbum | Boolean | 是否开启从相册选择功能 | | setShowTitle | Boolean | 是否显示Title | | setTitleText | String | 设置Title文字 | | setTitleBackgroudColor | int | 设置Title背景色 | | setTitleTextColor | int | 设置Title文字颜色 | | setCornerColor | int | 设置扫描框颜色 | | setLineColor | int | 设置扫描线颜色 | | setLineSpeed | int | 设置扫描线速度QrConfig.LINE_FAST(快速)QrConfig.LINE_MEDIUM(中速)