amggg / YXing

481 stars 38 forks source link

怎么集成:

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 时生效
                                    //设置扫码框位置  left : 边框左边位置   top : 边框上边位置   right : 边框右边位置   bottom : 边框下边位置   单位/dp
//                                    .setScanRect(new ScanRect(50, 200, 300, 450), false)
                                    //是否限制识别区域为设定扫码框大小  true:限制  false:不限制   默认false:识别区域为整个屏幕
                                    .setLimitRect(true)
                                    //设置扫码框位置 scanSize : 扫码框大小   offsetX : x轴偏移量    offsetY :y轴偏移量   单位 /px
                                    .setScanSize(600, 0, 0)
                                    //是否显示边框上四个角标 true : 显示  false : 不显示
                                    .setShowFrame(true)
                                    //设置边框上四个角标颜色
                                    .setFrameColor(R.color.whilte)
                                    //设置边框上四个角标圆角  单位 /dp
                                    .setFrameRadius(2)
                                    //设置边框上四个角宽度 单位 /dp
                                    .setFrameWith(4)
                                    //设置边框上四个角长度 单位 /dp
                                    .setFrameLength(15)
                                    //设置是否显示边框外部阴影 true : 显示  false : 不显示
                                    .setShowShadow(true)
                                    //设置边框外部阴影颜色
                                    .setShadeColor(R.color.black_tran30)
                                    //设置扫码条运动方式   ScanMode.REVERSE : 往复运动   ScanMode.RESTART :重复运动    默认ScanMode.RESTART
                                    .setScanMode(ScanMode.REVERSE)
                                    //设置扫码条扫一次时间  单位/ms  默认3000
                                    .setScanDuration(3000)
                                    //设置扫码条图片
                                    .setScanBitmapId(R.mipmap.scan_wechatline)
                                    //////////////////////////////////////////////
                                    //////////////////////////////////////////////
                                    //以下配置在 setIdentifyMultiple 为 true 时生效
                                    //设置是否开启识别多个二维码 true:开启 false:关闭   开启后识别到多个二维码会停留在扫码页 手动选择需要解析的二维码后返回结果
                                    .setIdentifyMultiple(isMultiple)
                                    //设置 二维码提示按钮的宽度 单位:px
                                    .setQrCodeHintDrawableWidth(120)
                                    //设置 二维码提示按钮的高度 单位:px
                                    .setQrCodeHintDrawableHeight(120)
                                    //设置 二维码提示按钮的Drawable资源
//                                    .setQrCodeHintDrawableResource(R.mipmap.in)
                                    //设置 二维码提示Drawable 是否开启缩放动画效果
                                    .setStartCodeHintAnimation(true)
                                    //设置 二维码选择页 背景透明度
                                    .setQrCodeHintAlpha(0.5f)
                                    //////////////////////////////////////////////
                                    .buidler()
                                    //跳转扫码页   扫码页可自定义样式
                                    .start(MyScanActivity.class);

接收扫码数据:

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK && data != null) {
            switch (requestCode) {
                case ScanCodeConfig.QUESTCODE:
                    //接收扫码结果
                    Bundle extras = data.getExtras();
                    if (extras != null) {
                        int codeType = extras.getInt(ScanCodeConfig.CODE_TYPE);
                        String code = extras.getString(ScanCodeConfig.CODE_KEY);
                        tvCode.setText(String.format(
                                "扫码结果:\n" +
                                        "码类型: %s  \n" +
                                        "码值  : %s", codeType == 0 ? "一维码" : "二维码", code));
                    }
                    break;
                case ALBUM_QUEST_CODE:
                    //接收图片识别结果
                    String code = ScanCodeConfig.scanningImage(this, data.getData());
                    tvCode.setText(String.format("识别结果: %s", code));
                    break;
                default:
                    break;
            }
        }
    }

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

使用文档:http://18390826440.3vkj.club

简书:https://www.jianshu.com/p/c549f91cb9c5

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