Android(安卓)基于ZXing的二维码扫描和生成
16lz
2021-01-26
首先添加依赖
implementation 'com.github.yuzhiqiang1993:zxing:2.2.5'
所用到的权限
<uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="android.permission.FLASHLIGHT" /><uses-feature android:name="android.hardware.camera" /><uses-feature android:name="android.hardware.camera.autofocus" /><uses-permission android:name="android.permission.VIBRATE" /><uses-permission android:name="android.permission.WAKE_LOCK" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
实际调用扫码
Intent intent = new Intent(MainActivity.this, CaptureActivity.class);//REQUEST_CODE_SCAN这个自己设置一个数字,传过去的和后来在onActivityResult中接收到的一致后,才执行下列动作startActivityForResult(intent, REQUEST_CODE_SCAN);
自定义配置项,可以不用配置,使用默认配置
Intent intent = new Intent(MainActivity.this, CaptureActivity.class);/*ZxingConfig是配置类*可以设置是否显示底部布局,闪光灯,相册,* 是否播放提示音 震动* 设置扫描框颜色等* 也可以不传这个参数* */ZxingConfig config = new ZxingConfig();config.setPlayBeep(true);//是否播放扫描声音 默认为trueconfig.setShake(true);//是否震动 默认为trueconfig.setDecodeBarCode(true);//是否扫描条形码 默认为trueconfig.setReactColor(R.color.colorAccent);//设置扫描框四个角的颜色 默认为白色config.setFrameLineColor(R.color.colorAccent);//设置扫描框边框颜色 默认无色config.setScanLineColor(R.color.colorAccent);//设置扫描线的颜色 默认白色config.setFullScreenScan(false);//是否全屏扫描 默认为true 设为false则只会在扫描框中扫描intent.putExtra(Constant.INTENT_ZXING_CONFIG, config);startActivityForResult(intent, REQUEST_CODE_SCAN);
重写方法,实现回传扫描到的信息
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // 扫描二维码/条码回传 if (requestCode == REQUEST_CODE_SCAN && resultCode == RESULT_OK) { if (data != null) { String scanStr = data.getStringExtra(Constant.CODED_CONTENT); scanTv.setText("扫描结果为:" + scanStr); } } }
生成二维码(可生成带图标的和不带图标的)
* w:图片的宽 * h:图片的高 * logo:不需要logo的话直接传null * */ Bitmap logo = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher); Bitmap bitmap = null; bitmap = CodeCreator.createQRCode("这是生成的二维码的内容", 400, 400, logo); if (bitmap != null) { generateIv.setImageBitmap(bitmap); }
更多相关文章
- android app项目启动时的架构搭建
- MediaProvider流程分析
- Button监听方式
- [Android(安卓)Studio]设置Button的圆角、点击效果、按钮颜色
- GridLayout用法
- Android(安卓)Glide设置图片的圆角
- android socket通信 模拟器可以 真机不行 是防火墙的原因
- Android(安卓)高级控件(一)
- Android(安卓)Studio下添加assets目录