首先添加依赖

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);                }

更多相关文章

  1. android app项目启动时的架构搭建
  2. MediaProvider流程分析
  3. Button监听方式
  4. [Android(安卓)Studio]设置Button的圆角、点击效果、按钮颜色
  5. GridLayout用法
  6. Android(安卓)Glide设置图片的圆角
  7. android socket通信 模拟器可以 真机不行 是防火墙的原因
  8. Android(安卓)高级控件(一)
  9. Android(安卓)Studio下添加assets目录

随机推荐

  1. 为android java基础库插入log
  2. Android官方文档翻译--How Android Draws
  3. android bitmap的缓存策略
  4. AIDL --- Android中的远程接口(2)
  5. Android(安卓)studio打包时忽略指定的jar
  6. Android碎碎念 -- 性能测试,适用于Android
  7. android多级树形列表
  8. android 最简单的反编译apk脚本(1拖即可完
  9. Android6.0权限系统
  10. 插件化二(Android)