登录

去注册 忘记密码?

登录

注册

去登录

  • 扫码关注公众号
  • 发送“我爱安卓
  • 即可获取验证码

注册

解锁回答区域

  • 扫码关注公众号
  • 发送“我爱安卓

若你登陆,将永久解锁;
若未登录,仅本机解锁。

解锁回答区域

获取注册验证码

  • 扫码关注公众号
  • 发送“我爱安卓
  • 即可获取验证码

Android 一行代码接入扫码功能 (CameraX + zxing)持续更新....

amggg   2021-01-05 00:12   收藏

怎么集成:

1、在根目录的build.gradle中添加jitpack依赖:

allprojects {
    repositories {
        maven { url "https://jitpack.io" }
    }
}

2、在project的build.gradle中添加YXing依赖:

  implementation 'com.github.amggg:YXing:releaseVersion'

简单调用:

Activity中启动:

  ScanCodeConfig.create(MainActivity.this)
                                    //设置扫码页样式 ScanStyle.NONE:无  ScanStyle.QQ :仿QQ样式   ScanStyle.WECHAT :仿微信样式    ScanStyle.CUSTOMIZE : 自定义样式
                                    .setStyle(style)
                                    //扫码成功是否播放音效  true : 播放   false : 不播放
                                    .setPlayAudio(false)
                                    .buidler()
                                    //跳转扫码页   扫码页可自定义样式
                                    .start(ScanCodeActivity.class);

Fragment中启动:

  ScanCodeConfig.create(MainActivity.this, mFragment)
                                    //设置扫码页样式 ScanStyle.NONE:无  ScanStyle.QQ :仿QQ样式   ScanStyle.WECHAT :仿微信样式    ScanStyle.CUSTOMIZE : 自定义样式
                                    .setStyle(style)
                                    //扫码成功是否播放音效  true : 播放   false : 不播放
                                    .setPlayAudio(false)
                                    .buidler()
                                    //跳转扫码页   扫码页可自定义样式
                                    .start(ScanCodeActivity.class);

全部参数:


ScanCodeConfig.create(MainActivity.this)
                                    //设置扫码页样式 ScanStyle.NONE:无  ScanStyle.QQ :仿QQ样式   ScanStyle.WECHAT :仿微信样式  ScanStyle.CUSTOMIZE : 自定义样式
                                    .setStyle(ScanStyle.CUSTOMIZE)
                                    //扫码成功是否播放音效  true : 播放   false : 不播放
                                    .setPlayAudio(true)
                                    //设置音效音频
                                    .setAudioId(R.raw.beep)
                                    ////////////////////////////////////////////
                                    //以下配置 在style为 ScanStyle.CUSTOMIZE 时生效
                                   //设置扫码框位置 scanSize : 扫码框大小  宽高 1:1     offsetX : x轴偏移量    offsetY :y轴偏移量   单位 /px
                                    .setScanSize(800, 0, -200)
                                    //设置扫码框位置  left : 边框左边位置   top : 边框上边位置   right : 边框右边位置   bottom : 边框下边位置   isUsePx : 是否使用px单位   true : 使用(px)  fase : 不使用(dp)   默认false
//                                    .setScanRect(new ScanRect(50, 200, 300, 450), false)
                                    //是否显示边框上四个角标 true : 显示  false : 不显示
                                    .setShowFrame(true)
                                    //设置边框上四个角标颜色
                                    .setFrameColor(R.color.whilte)
                                    //设置边框上四个角标圆角  单位 /dp
                                    .setFrameRaduis(2)
                                    //设置边框上四个角宽度 单位 /dp
                                    .setFrameWith(4)
                                    //设置边框上四个角长度 单位 /dp
                                    .setFrameLenth(15)
                                    //设置是否显示边框外部阴影 true : 显示  false : 不显示
                                    .setShowShadow(true)
                                    //设置边框外部阴影颜色
                                    .setShaowColor(R.color.black_tran30)
                                    //设置扫码条运动方式   ScanMode.REVERSE : 往复运动   ScanMode.RESTART :重复运动    默认ScanMode.RESTART
                                    .setScanMode(ScanMode.REVERSE)
                                    //设置扫码条扫一次时间  单位/ms  默认3000
                                    .setScanDuration(3000)
                                    //设置扫码条图片
                                    .setScanBitmapId(R.mipmap.scan_wechatline)
                                    //////////////////////////////////////////////
                                    .buidler()
                                    //跳转扫码页   扫码页可自定义样式
                                    .start(ScanCodeActivity.class);

接收扫码数据:

 @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        //接收扫码结果
        if(resultCode == RESULT_OK && requestCode == ScanCodeConfig.QUESTCODE && data != null){
            Bundle extras = data.getExtras();
            if(extras != null){
                String code = extras.getString(ScanCodeConfig.CODE_KEY);
                tvCode.setText(String.format("%s%s", "结果: " , code));
            }
        }
    }

更多功能请查看使用文档。

使用文档:https://www.jianshu.com/p/c549f91cb9c5

APP下载链接:https://www.pgyer.com/FMi9

项目地址:https://github.com/amggg/YXing