1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
repositories {
mavenCentral()
maven {
url
"https://dl.bintray.com/journeyapps/maven"
}
}
dependencies {
//
Supports Android 4.0.3 and later (API level 15)
compile
'com.journeyapps:zxing-android-embedded:2.3.0@aar'
//
Supports Android 2.1 and later (API level 7), but not optimal
for
later Android versions.
//
If you only plan on supporting Android 4.0.3 and up, you don't need to include this.
compile
'com.journeyapps:zxing-android-legacy:2.3.0@aar'
//
Convenience library to launch the scanning Activities.
//
It automatically picks the best scanning library from the above two, depending on the
//
Android version and what is available.
compile
'com.journeyapps:zxing-android-integration:2.3.0@aar'
//
Version 3.0.x of zxing core contains some code that is not compatible on Android 2.2 and earlier.
//
This mostly affects encoding, but you should
test
if
you plan to support these versions.
//
Older versions e.g. 2.2 may also work
if
you need support
for
older Android versions.
compile
'com.google.zxing:core:3.2.0'
}
|
1
|
new
IntentIntegrator(
this
).initiateScan();
//'this'是当前的Activity
|
1
|
IntentIntegrator.forSupportFragment(
this
).initiateScan();
//'this'是当前的Fragment
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
@Override
public
void
onActivityResult(
int
requestCode,
int
resultCode, Intent intent) {
super
.onActivityResult(requestCode, resultCode, intent);
if
(resultCode == Activity.RESULT_OK) {
String contents = intent.getStringExtra(
"SCAN_RESULT"
);
//图像内容
String format = intent.getStringExtra(
"SCAN_RESULT_FORMAT"
);
//图像格式
// Handle successful scan
Log.v(
"qr-code"
, contents +
"####"
+ format);
tv_content.setText(contents);
}
else
if
(resultCode == Activity.RESULT_CANCELED) {
// Handle cancel
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
private
Bitmap generateQRCode(String qrCodeString){
Bitmap bmp =
null
;
//二维码图片
QRCodeWriter writer =
new
QRCodeWriter();
try
{
BitMatrix bitMatrix = writer.encode(qrCodeString, BarcodeFormat.QR_CODE,
512
,
512
);
//参数分别表示为: 条码文本内容,条码格式,宽,高
int
width = bitMatrix.getWidth();
int
height = bitMatrix.getHeight();
bmp = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
//绘制每个像素
for
(
int
x =
0
; x < width; x++) {
for
(
int
y =
0
; y < height; y++) {
bmp.setPixel(x, y, bitMatrix.get(x, y) ? Color.BLACK : Color.WHITE);
}
}
}
catch
(WriterException e) {
e.printStackTrace();
}
return
bmp;
}
|