基于Zxing 3.3.3版本源码精简与优化。移除了分享、WIFI、书签、URL识别等功能,保留了条码、二维码扫描功能。并增加了可自定义扫描界面和扫描配置。支持音量调整焦距、全屏扫描、扫描结果图片水印、压缩、绘制识别点等功能。
请在项目中重写以下资源名的属性值。
资源属性 | 属性描述 | 默认值 |
---|---|---|
handy_titlebar_mainTextColor | 扫描界面标题栏文字颜色 | #FFFFFFFF |
handy_status_background | 扫描界面状态栏背景颜色 | #00000000 |
handy_titlebar_background | 扫描界面标题栏背景颜色 | #00000000 |
handy_titlebar_bottomLine_background | 扫描界面标题栏底部分割线背景颜色 | #FFFFFFFF |
handy_viewfinder_mask_color | 扫描界面,扫描框外的区域背景 | #60000000 |
handy_scan_corner_color | 扫描框四个角的背景色 | #65E102 |
handy_scan_centerLine_color | 扫描线颜色 | #98C360 |
handy_scan_focusLine_color | 扫描框四周边线颜色 | #FFFFFF |
handy_scan_hit_color | 底部提示内容字体颜色 | #FFFFFF |
handy_scan_snackbar_background | 扫描结果提示框背景颜色 | #424242 |
handy_scan_snackbar_message_color | 扫描结果提示框字体颜色 | #FFFFFF |
handy_scan_snackbar_action_color | 扫描结果提示框按钮字体颜色 | #7CB342 |
handy_scan_corner_width | 扫描框四个边角长度 | 16dp |
handy_scan_corner_thick | 扫描框四个边角厚度 | 4dp |
handy_scan_focusLine_thick | 扫描框四周边线宽度 | 1dp |
handy_scan_hit_marginTop | 底部提示文字离扫描框距离值 | 22dp |
handy_scan_hit_size | 底部提示文字字体大小 | 13sp |
资源属性 | 属性描述 | 默认值 |
---|---|---|
handy_scan_titlebar_connect | 扫描界面标题栏名称 | 二维码扫描 |
handy_scan_error_title | 扫描失败提示框标题 | 启动失败 |
handy_scan_error_dialog_btn | 扫描失败提示框按钮 | 确定 |
handy_scan_error_dialog_message | 扫描失败提示框内容 | 很遗憾,Android相机出现问题。请检查此应用权限中是否允许使用相机并重启应用。 |
handy_scan_hint_content | 扫描界面提示内容 | 请将条码置于取景框内扫描 |
相关配置属性是以静态变量的方式存放在ScanSingleConfig类中,可直接重写属性值自定义配置。
public static boolean KEY_DECODE_1D_PRODUCT = true;
public static boolean KEY_DECODE_1D_INDUSTRIAL = true;
public static boolean KEY_DECODE_QR = true;
public static boolean KEY_DECODE_DATA_MATRIX = false;
public static boolean KEY_DECODE_AZTEC = false;
public static boolean KEY_DECODE_PDF417 = false;
public static boolean KEY_PLAY_BEEP = true;
public static boolean KEY_VIBRATE = true;
public static boolean KEY_USE_LIGHT = false;
public static boolean KEY_AUTO_FOCUS = true;
public static boolean KEY_DISABLE_CONTINUOUS_FOCUS = true;
public static boolean KEY_DISABLE_EXPOSURE = true;
public static boolean KEY_DISABLE_METERING = true;
public static boolean KEY_DISABLE_BARCODE_SCENE_MODE = false;
public static boolean KEY_SCAN_FULLSCREEN = true;
public static ScanType KEY_SCAN_TYPE = ScanType.All;
public static boolean KEY_AUTO_ORIENTATION = false;
public static int KEY_SCREEN_ORIENTATION = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
public static boolean KEY_VERIFY_RESULT = true;
https://github.com/Handy045/HandyQRCode
-
在根目录的build.gradle文件中,找到allProjects属性并增加maven仓库地址。
allprojects { repositories { ... maven { url 'https://jitpack.io' } } }
-
在使用Module的build.gradle文件中,添加引用语句。
dependencies { implementation 'com.github.Handy045:HandyQRCode:最新版本号' }
View.setOnClickListener(v -> {
// 全局配置设置
ScanConfig.KEY_DECODE_1D_INDUSTRIAL = false;
ScanConfig.KEY_DECODE_1D_PRODUCT = false;
// 调用二维码扫描功能模块
new ScanLauncher().startSingle(ScanActivity.this, new ScanConfig.ScanResultListener() {
@Override
public void resultListener(String result) {
// 二维码扫描结果返回
Toast.makeText(activity, "扫描结果: \n" + result, Toast.LENGTH_SHORT).show();
}
});
});
类名 | 功能描述 | 其他 |
---|---|---|
QRCodeUtils | 二维码生成工具类 | 生成普通二维码和带Image标识的二维码 |
类名 | 功能描述 | 其他 |
---|---|---|
HandyTitleBar | 自定义标题栏控件 | 查看地址 |