地址:https://github.com/yuzhiqiang1993/zxing
依赖
/*
zxing添加依赖
*/
implementation 'com.github.yuzhiqiang1993:zxing:2.2.5'
//butterknife框架
annotationProcessor 'com.jakewharton:butterknife-compiler:8.6.0'
implementation 'com.tbruyelle.rxpermissions2:rxpermissions:+'
implementation 'com.trello.rxlifecycle2:rxlifecycle:2.2.1'
implementation 'com.trello.rxlifecycle2:rxlifecycle-android:2.2.1'
implementation 'com.trello.rxlifecycle2:rxlifecycle-components:2.2.1'
代码
public class ZxingDemoActivity extends AppCompatActivity {
private static final int REQUEST_CODE_SCAN = 1001;
@BindView(R.id.btn_scan)
public Button button_scan;
@BindView(R.id.btn_create)
public Button button_create;
@BindView(R.id.img_zxing)
public ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zxing_demo);
ButterKnife.bind(this);
new RxPermissions(this)
.request(Manifest.permission.CAMERA,Manifest.permission.WRITE_EXTERNAL_STORAGE)
.subscribe(new Observer<Boolean>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Boolean aBoolean) {
Log.d("amy", "onNext: "+aBoolean);
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
}
@OnClick({R.id.btn_scan,R.id.btn_create})
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_scan:
//扫描二维码
Intent intent = new Intent(ZxingDemoActivity.this, CaptureActivity.class);
startActivityForResult(intent, REQUEST_CODE_SCAN);
break;
case R.id.btn_create:
//生成二维码
// Bitmap logo = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher); //logo
Bitmap bitmap = CodeCreator.createQRCode("测试的二维码", 400, 400, null);
imageView.setImageBitmap(bitmap);
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// 扫描二维码/条码回传
if (requestCode == REQUEST_CODE_SCAN && resultCode == RESULT_OK) {
if (data != null) {
String content = data.getStringExtra(Constant.CODED_CONTENT);
// result.setText("扫描结果为:" + content);
Log.d("amy", "onActivityResult: "+"扫描结果为:" + content);
}
}
}
}