https://github.com/zxing/zxing
步骤:
1.导依赖
compile 'cn.yipianfengye.android:zxing-library:1.9'
解决版本冲突
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '27.1.1' //这里改为你项目使用的版本即可
}
}
}
}
//初始化操作
ZXingLibrary.initDisplayOpinion(this);
switch (view.getId()) {
case R.id.button1:
//打开默认的二维码扫描界面
Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
startActivityForResult(intent, REQUEST_CODE); //标识符
break;
case R.id.button2:
//生成带logo的二维码
String textContent1 = editText.getText().toString();
if (TextUtils.isEmpty(textContent1)) {
Toast.makeText(MainActivity.this, "您的输入为空!", Toast.LENGTH_SHORT).show();
return;
}
editText.setText("");
Bitmap bitmap1 = CodeUtils.createImage(textContent1, 200, 200, BitmapFactory.decodeResource(getResources(), R.drawable.psb));
imageView1.setImageBitmap(bitmap1);
break;
case R.id.button3:
//生成带logo的二维码
String textContent2 = editText.getText().toString();
if (TextUtils.isEmpty(textContent2)) {
Toast.makeText(MainActivity.this, "您的输入为空!", Toast.LENGTH_SHORT).show();
return;
}
editText.setText("");
Bitmap bitmap2 = CodeUtils.createImage(textContent2, 200, 200, null);
imageView2.setImageBitmap(bitmap2);
break;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE) {
//处理扫描结果
if (null != data) {
Bundle bundle = data.getExtras();
if (bundle == null) {
return;
}
if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_SUCCESS) {
String result = bundle.getString(CodeUtils.RESULT_STRING);
Toast.makeText(this, "解析结果:" + result, Toast.LENGTH_LONG).show();
} else if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_FAILED) {
Toast.makeText(MainActivity.this, "解析二维码失败", Toast.LENGTH_LONG).show();
}
}
}
}