Skip to content

Commit 8f9b554

Browse files
committed
update readme
1 parent 9676620 commit 8f9b554

12 files changed

Lines changed: 126 additions & 32 deletions

File tree

README.md

Lines changed: 40 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@ C++ port of ZXing for Android
66

77
底层使用C++来处理图像及解析二维码,并且加入了OpenCV来解析图像,可以在更远的距离识别出二维码。
88

9+
![App展示](https://github.com/devilsen/CZXing/blob/master/screenshots/scan_code.gif)
10+
911
### 使用
1012
在gradle中:
1113
``` groovy
12-
implementation 'me.devilsen:CZXing:0.9.8'
14+
implementation 'me.devilsen:CZXing:0.9.9'
1315
```
1416
建议加入abiFilters
1517
```gradle
@@ -23,6 +25,10 @@ implementation 'me.devilsen:CZXing:0.9.8'
2325
}
2426
}
2527
```
28+
如果下载失败,可以在根目录加入阿里云的镜像
29+
```gradle
30+
maven { url 'https://maven.aliyun.com/repository/jcenter' }
31+
```
2632

2733
#### 1. 直接使用
2834
你可以直接使用已经封装好的ScanActivity作为扫码界面
@@ -31,16 +37,21 @@ Resources resources = getResources();
3137
List<Integer> scanColors = Arrays.asList(resources.getColor(R.color.scan_side), resources.getColor(R.color.scan_partial), resources.getColor(R.color.scan_middle));
3238

3339
Scanner.with(this)
40+
.setMaskColor(resources.getColor(R.color.mask_color)) // 设置设置扫码框四周颜色
3441
.setBorderColor(resources.getColor(R.color.box_line)) // 扫码框边框颜色
42+
.setBorderSize(BarCodeUtil.dp2px(this, 200)) // 设置扫码框大小
3543
.setCornerColor(resources.getColor(R.color.corner)) // 扫码框角颜色
3644
.setScanLineColors(scanColors) // 扫描线颜色(这是一个渐变颜色)
37-
.setScanMode(ScanView.SCAN_MODE_TINY) // 扫描区域
45+
.setScanMode(ScanView.SCAN_MODE_TINY) // 扫描区域 0:混合 1:只扫描框内 2:只扫描整个屏幕
46+
.setBarcodeFormat(BarcodeFormat.EAN_13) // 设置扫码格式
3847
.setTitle("My Scan View") // 扫码界面标题
3948
.showAlbum(true) // 显示相册(默认为true)
40-
.setBarcodeFormat(BarcodeFormat.EAN_13) // 设置扫码格式
4149
.setScanNoticeText("扫描二维码") // 设置扫码文字提示
4250
.setFlashLightOnText("打开闪光灯") // 打开闪光灯提示
4351
.setFlashLightOffText("关闭闪光灯") // 关闭闪光灯提示
52+
.setFlashLightOnDrawable(R.drawable.ic_highlight_blue_open_24dp) // 闪光灯打开时的样式
53+
.setFlashLightOffDrawable(R.drawable.ic_highlight_white_close_24dp) // 闪光灯关闭时的样式
54+
.setFlashLightInvisible() // 不使用闪光灯图标及提示
4455
.continuousScan() // 连续扫码,不关闭扫码界面
4556
.setOnClickAlbumDelegate(new ScanActivityDelegate.OnClickAlbumDelegate() {
4657
@Override
@@ -68,6 +79,8 @@ Scanner.with(this)
6879
```
6980

7081
#### 2. 自定义界面
82+
![自定义界面展示](https://github.com/devilsen/CZXing/blob/master/screenshots/customize_scan_view.jpg)
83+
7184
或者使用ScanView来自定义你的界面
7285
```xml
7386
<me.devilsen.czxing.view.ScanView
@@ -91,24 +104,46 @@ mScanView.setScanListener(new ScanListener() {
91104
});
92105
```
93106

107+
更多API请参考[CustomizeActivity](https://github.com/devilsen/CZXing/blob/master/sample/src/main/java/me/sam/czxing/CustomizeActivity.java)
108+
94109
#### 3. 生成二维码
110+
![生成二维码](https://github.com/devilsen/CZXing/blob/master/screenshots/write_code.gif)
111+
95112
调用以下代码,可生成二维码的bitmap,Color为可选参数,默认为黑色。
113+
114+
简易调用
115+
96116
```java
97117
BarcodeWriter writer = new BarcodeWriter();
98118
Bitmap bitmap = writer.write("Hello World", BarCodeUtil.dp2px(this, 200), BarCodeUtil.dp2px(this, 200), Color.RED);
99119
```
100120

121+
复杂调用
122+
123+
```java
124+
/**
125+
* 生成图片
126+
*
127+
* @param text 要生成的文本
128+
* @param width 图片宽
129+
* @param height 图片高
130+
* @param color 要生成的二维码颜色
131+
* @param format 要生成的条码格式
132+
* @param logo 放在中间的logo
133+
* @return 条码bitmap
134+
*/
135+
private Bitmap write(String text, int width, int height, int color, BarcodeFormat format, Bitmap logo)
136+
```
101137

102138
### 效果展示
103-
[点击观看](https://www.bilibili.com/video/av59888116)
139+
[远距离扫码演示](https://www.bilibili.com/video/av59888116)
104140

105141
[apk下载](https://github.com/devilsen/CZXing/releases)
106142

107143
[设计思路](https://www.jianshu.com/p/e2866af44236)
108144

109145
## License
110146

111-
Copyright (C) 2012 The Android Open Source Project
112147
Copyright 2019 Devilsen
113148

114149
Licensed under the Apache License, Version 2.0 (the "License");

czxing/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ android {
66
defaultConfig {
77
minSdkVersion rootProject.ext.minSdkVersion
88
targetSdkVersion rootProject.ext.targetSdkVersion
9-
versionCode 20
10-
versionName "0.9.8"
9+
versionCode 21
10+
versionName "0.9.9"
1111

1212
externalNativeBuild {
1313
cmake {

czxing/src/main/java/me/devilsen/czxing/code/BarcodeWriter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ public Bitmap writeBarCode(String text, int width, int height, int color) {
9494
* @param width 图片宽
9595
* @param height 图片高
9696
* @param color 要生成的二维码颜色
97+
* @param format 要生成的条码格式
9798
* @param logo 放在中间的logo
9899
* @return bitmap二维码
99100
*/

czxing/src/main/java/me/devilsen/czxing/view/BarCoderView.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,26 @@ public void onDestroy() {
426426
mScanListener = null;
427427
}
428428

429+
/**
430+
* 扫描模式,提供了三种扫码模式
431+
* ┏--------------┓
432+
* ┃ ┃
433+
* ┃ 2 ┃
434+
* ┃ ┏----┓ ┃
435+
* ┃ ┃ 1 ┃ ┃
436+
* ┃ ┗----┛ ┃
437+
* ┃ ┃
438+
* ┃ ┃
439+
* ┃ ┃
440+
* ┃ ┃
441+
* ┗--------------┛
442+
* <p>
443+
* 0:混合扫描模式(默认),扫描4次扫码框里的内容,扫描1次以屏幕宽为边长的内容
444+
* 1:只扫描扫码框里的内容
445+
* 2:扫描以屏幕宽为边长的内容
446+
*
447+
* @param scanMode 0 / 1 / 2
448+
*/
429449
public void setScanMode(int scanMode) {
430450
this.scanMode = scanMode;
431451
}

czxing/src/main/java/me/devilsen/czxing/view/ScanBoxView.java

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -514,7 +514,7 @@ public void setFlashLightOffDrawable(int lightOffDrawable) {
514514
}
515515

516516
/**
517-
* 不使用手电筒图标
517+
* 不使用手电筒图标及提示
518518
*/
519519
public void invisibleFlashLightIcon() {
520520
mDropFlashLight = true;
@@ -527,42 +527,51 @@ public void hideCardText() {
527527
this.mDrawCardText = false;
528528
}
529529

530-
public void startAnim() {
531-
if (mScanLineAnimator != null && !mScanLineAnimator.isRunning()) {
532-
mScanLineAnimator.start();
533-
}
534-
}
535-
536-
public void stopAnim() {
537-
if (mScanLineAnimator != null && mScanLineAnimator.isRunning()) {
538-
mScanLineAnimator.cancel();
539-
}
540-
}
541-
542-
public void onDestroy() {
543-
if (mScanLineAnimator != null) {
544-
mScanLineAnimator.removeAllUpdateListeners();
545-
}
546-
}
547-
530+
/**
531+
* 设置闪光灯打开时的提示文字
532+
*/
548533
public void setFlashLightOnText(String lightOnText) {
549534
if (lightOnText != null) {
550535
mFlashLightOnText = lightOnText;
551536
}
552537
}
553538

539+
/**
540+
* 设置闪光灯关闭时的提示文字
541+
*/
554542
public void setFlashLightOffText(String lightOffText) {
555543
if (lightOffText != null) {
556544
mFlashLightOffText = lightOffText;
557545
}
558546
}
559547

548+
/**
549+
* 设置扫码框下方的提示文字
550+
*/
560551
public void setScanNoticeText(String scanNoticeText) {
561552
if (scanNoticeText != null) {
562553
mScanNoticeText = scanNoticeText;
563554
}
564555
}
565556

557+
public void startAnim() {
558+
if (mScanLineAnimator != null && !mScanLineAnimator.isRunning()) {
559+
mScanLineAnimator.start();
560+
}
561+
}
562+
563+
public void stopAnim() {
564+
if (mScanLineAnimator != null && mScanLineAnimator.isRunning()) {
565+
mScanLineAnimator.cancel();
566+
}
567+
}
568+
569+
public void onDestroy() {
570+
if (mScanLineAnimator != null) {
571+
mScanLineAnimator.removeAllUpdateListeners();
572+
}
573+
}
574+
566575
public interface ScanBoxClickListener {
567576
void onFlashLightClick();
568577
}

sample/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ android {
5757
dependencies {
5858

5959
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.0-beta-3'
60-
implementation project(':czxing')
61-
// implementation 'me.devilsen:CZXing:0.9.6'
60+
// implementation project(':czxing')
61+
implementation 'me.devilsen:CZXing:0.9.9'
6262

6363
implementation rootProject.ext.appcompat
6464
testImplementation rootProject.ext.junit

sample/src/main/java/me/sam/czxing/CustomizeActivity.java

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@
3535
import me.devilsen.czxing.view.ScanView;
3636

3737
/**
38-
* desc :
39-
* date : 2019-11-18 15:22
38+
* desc : 自定义扫码界面
39+
* date : 2019-11-18
4040
*
4141
* @author : dongSen
4242
*/
@@ -70,13 +70,42 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
7070
TextView option2Txt = findViewById(R.id.text_view_customize_option_2);
7171
TextView option3Txt = findViewById(R.id.text_view_customize_option_3);
7272

73+
// 设置扫描模式
74+
// mScanView.setScanMode(ScanView.SCAN_MODE_MIX);
75+
// 设置扫描格式 BarcodeFormat
76+
// mScanView.setBarcodeFormat();
77+
7378
ScanBoxView scanBox = mScanView.getScanBox();
79+
// 设置扫码框上下偏移量,可以为负数
7480
scanBox.setBoxTopOffset(-BarCodeUtil.dp2px(this, 100));
81+
// 设置扫码框四周的颜色
7582
scanBox.setMaskColor(Color.parseColor("#9C272626"));
83+
// 设定四个角的颜色
84+
// scanBox.setCornerColor();
85+
// 设定扫描框的边框颜色
86+
// scanBox.setBorderColor();
87+
// 设置边框长度(扫码框大小)
88+
// scanBox.setBorderSize();
89+
// 设定扫描线的颜色
90+
// scanBox.setScanLineColor();
91+
// 设置手电筒打开时的图标
92+
// scanBox.setFlashLightOnDrawable();
93+
// 设置手电筒关闭时的图标
94+
// scanBox.setFlashLightOffDrawable();
95+
// 设置闪光灯打开时的提示文字
96+
// scanBox.setFlashLightOnText();
97+
// 设置闪光灯关闭时的提示文字
98+
// scanBox.setFlashLightOffText();
99+
// 不使用手电筒图标及提示
100+
// scanBox.invisibleFlashLightIcon();
101+
// 设置扫码框下方的提示文字
102+
// scanBox.setScanNoticeText();
76103

77104
backImg.setOnClickListener(this);
78105
albumTxt.setOnClickListener(this);
106+
// 获取扫码回调
79107
mScanView.setScanListener(this);
108+
// 获取亮度测量结果
80109
mScanView.setAnalysisBrightnessListener(this);
81110
myCodeTxt.setOnClickListener(this);
82111
option1Txt.setOnClickListener(this);

sample/src/main/java/me/sam/czxing/MainActivity.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,15 +84,15 @@ public void openScan(View view) {
8484
.setCornerColor(resources.getColor(R.color.corner))
8585
.setScanLineColors(scanColors)
8686
.setScanMode(ScanView.SCAN_MODE_MIX)
87-
.setTitle("我的扫一扫")
8887
// .setBarcodeFormat(BarcodeFormat.EAN_13)
88+
.setTitle("我的扫一扫")
89+
.showAlbum(true)
8990
.setScanNoticeText("扫描二维码")
9091
.setFlashLightOnText("打开闪光灯")
9192
.setFlashLightOffText("关闭闪光灯")
9293
// .setFlashLightInvisible()
9394
.setFlashLightOnDrawable(R.drawable.ic_highlight_blue_open_24dp)
9495
.setFlashLightOffDrawable(R.drawable.ic_highlight_white_close_24dp)
95-
.showAlbum(true)
9696
.continuousScan()
9797
.setOnClickAlbumDelegate(new ScanActivityDelegate.OnClickAlbumDelegate() {
9898
@Override
67.1 KB
Loading

0 commit comments

Comments
 (0)