# YXing **Repository Path**: LDProject/YXing ## Basic Information - **Project Name**: YXing - **Description**: fork from https://github.com/amggg/YXing.git - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-07-03 - **Last Updated**: 2025-07-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 怎么集成: 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