{"id":18565077,"url":"https://github.com/jenly1314/zxinglite","last_synced_at":"2025-05-13T19:14:08.271Z","repository":{"id":37396784,"uuid":"144130700","full_name":"jenly1314/ZXingLite","owner":"jenly1314","description":"🔥 ZXing的精简极速版，优化扫码和生成二维码/条形码，内置闪光灯等功能。扫描风格支持：微信的线条样式，支付宝的网格样式。几句代码轻松拥有扫码功能 ，ZXingLite让集成更简单。（扫码识别速度快如微信）","archived":false,"fork":false,"pushed_at":"2025-04-15T15:19:49.000Z","size":139205,"stargazers_count":3182,"open_issues_count":2,"forks_count":491,"subscribers_count":26,"default_branch":"master","last_synced_at":"2025-04-27T20:01:22.275Z","etag":null,"topics":["alipay-scan","android","barcode","barcode-scanner","barcode-scanning","camerax","code-generator","qbar","qr-code","qrcode","qrcode-scanner","scancode","scanner","wechat-scan","zbar","zxing","zxing-library","zxing-lite","zxinglib","zxinglibrary"],"latest_commit_sha":null,"homepage":"https://jenly1314.github.io/ZXingLite/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jenly1314.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-08-09T09:27:04.000Z","updated_at":"2025-04-27T06:13:43.000Z","dependencies_parsed_at":"2024-01-06T12:04:40.818Z","dependency_job_id":"9270d12e-db7f-4d86-84df-723baa8fa262","html_url":"https://github.com/jenly1314/ZXingLite","commit_stats":{"total_commits":150,"total_committers":4,"mean_commits":37.5,"dds":0.3866666666666667,"last_synced_commit":"8f5dc4e82ea6444c6cd07dfde0edd82d37d7fb74"},"previous_names":[],"tags_count":42,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenly1314%2FZXingLite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenly1314%2FZXingLite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenly1314%2FZXingLite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenly1314%2FZXingLite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jenly1314","download_url":"https://codeload.github.com/jenly1314/ZXingLite/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254010813,"owners_count":21998995,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alipay-scan","android","barcode","barcode-scanner","barcode-scanning","camerax","code-generator","qbar","qr-code","qrcode","qrcode-scanner","scancode","scanner","wechat-scan","zbar","zxing","zxing-library","zxing-lite","zxinglib","zxinglibrary"],"created_at":"2024-11-06T22:17:40.881Z","updated_at":"2025-05-13T19:14:08.248Z","avatar_url":"https://github.com/jenly1314.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ZXingLite\r\n\r\n![Image](app/src/main/ic_launcher-web.png)\r\n\r\n[![Download](https://img.shields.io/badge/download-App-blue.svg)](https://raw.githubusercontent.com/jenly1314/ZXingLite/master/app/release/app-release.apk)\r\n[![MavenCentral](https://img.shields.io/maven-central/v/com.github.jenly1314/zxing-lite)](https://repo1.maven.org/maven2/com/github/jenly1314/zxing-lite)\r\n[![JitPack](https://jitpack.io/v/jenly1314/ZXingLite.svg)](https://jitpack.io/#jenly1314/ZXingLite)\r\n[![CI](https://travis-ci.org/jenly1314/ZXingLite.svg?branch=master)](https://travis-ci.org/jenly1314/ZXingLite)\r\n[![CircleCI](https://circleci.com/gh/jenly1314/ZXingLite.svg?style=svg)](https://circleci.com/gh/jenly1314/ZXingLite)\r\n[![API](https://img.shields.io/badge/API-21%2B-blue.svg?style=flat)](https://android-arsenal.com/api?level=21)\r\n[![License](https://img.shields.io/badge/license-Apche%202.0-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0)\r\n\r\nZXingLite for Android 是ZXing的精简极速版，基于ZXing库优化扫码和生成二维码/条形码功能，扫码界面完全支持自定义；使用ZXingLite可快速实现扫码识别相关功能。\r\n\u003e 简单如斯，你不试试？\r\n\r\n## Gif 展示\r\n![Image](GIF.gif)\r\n\r\n\u003e 你也可以直接下载 [演示App](https://raw.githubusercontent.com/jenly1314/ZXingLite/master/app/release/app-release.apk) 体验效果\r\n\r\n## 引入\r\n\r\n### Gradle:\r\n\r\n1. 在Project的 **build.gradle** 或 **setting.gradle** 中添加远程仓库\r\n\r\n    ```gradle\r\n    repositories {\r\n        //...\r\n        mavenCentral()\r\n    }\r\n    ```\r\n\r\n2. 在Module的 **build.gradle** 里面添加引入依赖项\r\n\r\n    ```gradle\r\n    implementation 'com.github.jenly1314:zxing-lite:3.2.0'\r\n\r\n    ```\r\n\r\n### 温馨提示\r\n\r\n#### 关于ZXingLite版本与编译的SDK版本要求\r\n\r\n\u003e 使用 **v3.1.x** 以上版本时，要求 **compileSdkVersion \u003e= 34**\r\n\r\n\u003e 使用 **v3.0.x** 以上版本时，要求 **compileSdkVersion \u003e= 33**\r\n\r\n\u003e 如果 **compileSdkVersion \u003c 33** 请使用 [**v2.x版本**](https://github.com/jenly1314/ZXingLite/tree/2.x/)\r\n\r\n## 使用\r\n\r\n### 版本变化说明\r\n\r\n#### 3.x版本的变化\r\n\r\n从 **2.x** 到 **3.x** 主要变化如下：\r\n\r\n* 2.x版本中的 **CameraScan** 相关核心类被移除了；\r\n\u003e 从3.0.0版本开始改为依赖 [CameraScan](https://github.com/jenly1314/CameraScan)；（[CameraScan](https://github.com/jenly1314/CameraScan)是一个独立的库，单独进行维护）\r\n\r\n* 2.x版本中的 **ViewfinderView** 被移除了；\r\n\u003e 从3.0.0版本开始改为依赖 [ViewfinderView](https://github.com/jenly1314/ViewfinderView)；（[ViewfinderView](https://github.com/jenly1314/ViewfinderView)是一个独立的库，单独进行维护）\r\n\r\n* 2.x版本中的 **CaptureActivity** 和 **CaptureFragment** 相关基类被移除了；\r\n\u003e 从3.0.0版本开始改为 **BarcodeCameraActivity** 和 **BarcodeCameraFragment**\r\n\r\n除了以上几点主要差异变化，3.x版本的整体使用方式和2.x基本类似；3.x版本在2.x版本的基础上再次进行重构，将 **CameraScan** 相关的公共基础类从 **ZXingLite** 中移除后，维护起来更方便了。\r\n\r\n\u003e 如果你是从 **2.x** 版本升级至 **3.x** 版本，那么你需要知道上面所说的主要差异；特别是独立出去单独维护的库，其包名都有所变化，这一点需要特别注意；请谨慎升级。\r\n\r\n\u003e 如果你使用的是2.x版本的话请直接[查看v2.x分支版本](https://github.com/jenly1314/ZXingLite/tree/2.x/)\r\n\r\n#### 3.x版本的使用\r\n\r\n3.x的实现主要是以 [CameraScan](https://github.com/jenly1314/CameraScan)作为基础库去实现具体的分析检测功能，所以你可以先去看下 [CameraScan](https://github.com/jenly1314/CameraScan)的使用说明；在了解了 [CameraScan](https://github.com/jenly1314/CameraScan)的基本使用方式后，然后再结合当前的使用说明就可以轻松的集成并使用 **ZXingLite** 了。\r\n\r\n### 主要类说明\r\n\r\n#### 关于Analyzer的实现类\r\n\r\n内部提供了Analyzer对应的实现，都是为快速实现扫码识别而提供的分析器。\r\n\r\n内部提供的分析器有多个；一般情况下，你只需要知道最终实现的 [**MultiFormatAnalyzer**](zxing-lite/src/main/java/com/king/zxing/analyze/MultiFormatAnalyzer.java) 和 [**QRCodeAnalyzer**](zxing-lite/src/main/java/com/king/zxing/analyze/QRCodeAnalyzer.java) 即可：\r\n\r\n**MultiFormatAnalyzer** 和 **QRCodeAnalyzer** 的主要区别，从名字大概就能看的出来；一个是可识别多种格式，一个是只识别二维码（具体需要支持识别哪些格式的条码，其实还要看提供的 **DecodeConfig** 是怎么配置的）。\r\n\r\n\u003e 本可以不需要 **QRCodeAnalyzer**，之所以提供一个 **QRCodeAnalyzer** 是因为有很多需求是只需要识别二维码就行；如果你有连续扫码的需求或不知道怎么选时，推荐直接选择 **MultiFormatAnalyzer** 。\r\n\r\n#### 关于DecodeConfig\r\n\r\nDecodeConfig：解码配置；主要用于在扫码识别时，提供一些配置，便于扩展。通过配置可决定内置分析器的能力，从而间接的控制并简化扫码识别的流程。一般在使用 **Analyzer** 的实现类时，你可能会用到。\r\n\r\n#### 关于DecodeFormatManager\r\n\r\nDecodeConfig：解码格式管理器；主要将多种条码格式进行划分与归类，便于提供快捷配置。\r\n\r\n#### 关于CodeUtils\r\n\r\n工具类 **CodeUtils** 中主要提供；解析条形码/二维码、生成条形码/二维码相关的能力。\r\n\r\nCodeUtils的使用示例\r\n\r\n```Java\r\n\r\n    // 生成二维码\r\n    CodeUtils.createQRCode(content,600,logo);\r\n    // 生成条形码\r\n    CodeUtils.createBarCode(content, BarcodeFormat.CODE_128,800,200);\r\n    // 解析条形码/二维码\r\n    CodeUtils.parseCode(bitmap);\r\n    // 解析二维码\r\n    CodeUtils.parseQRCode(bitmap);\r\n```\r\n\r\n#### 关于BarcodeCameraScanActivity\r\n\r\n通过继承BarcodeCameraScanActivity实现扫二维码完整示例\r\n\r\n```java\r\npublic class QRCodeScanActivity extends BarcodeCameraScanActivity {\r\n\r\n    @Override\r\n    public void initCameraScan(@NonNull CameraScan\u003cResult\u003e cameraScan) {\r\n        super.initCameraScan(cameraScan);\r\n        // 根据需要设置CameraScan相关配置\r\n        cameraScan.setPlayBeep(true);\r\n    }\r\n\r\n    @Nullable\r\n    @Override\r\n    public Analyzer\u003cResult\u003e createAnalyzer() {\r\n        // 初始化解码配置\r\n        DecodeConfig decodeConfig = new DecodeConfig();\r\n        decodeConfig.setHints(DecodeFormatManager.QR_CODE_HINTS)//如果只有识别二维码的需求，这样设置效率会更高，不设置默认为DecodeFormatManager.DEFAULT_HINTS\r\n                .setFullAreaScan(false)//设置是否全区域识别，默认false\r\n                .setAreaRectRatio(0.8f)//设置识别区域比例，默认0.8，设置的比例最终会在预览区域裁剪基于此比例的一个矩形进行扫码识别\r\n                .setAreaRectVerticalOffset(0)//设置识别区域垂直方向偏移量，默认为0，为0表示居中，可以为负数\r\n                .setAreaRectHorizontalOffset(0);//设置识别区域水平方向偏移量，默认为0，为0表示居中，可以为负数\r\n        // BarcodeCameraScanActivity默认使用的MultiFormatAnalyzer，如果只识别二维码，这里可以改为使用QRCodeAnalyzer\r\n        return new MultiFormatAnalyzer(decodeConfig);\r\n    }\r\n\r\n    /**\r\n     * 布局ID；通过覆写此方法可以自定义布局\r\n     *\r\n     * @return 布局ID\r\n     */\r\n    @Override\r\n    public int getLayoutId() {\r\n        return R.layout.activity_qrcode_scan;\r\n    }\r\n\r\n    @Override\r\n    public void onScanResultCallback(@NonNull AnalyzeResult\u003cResult\u003e result) {\r\n        // 停止分析\r\n        getCameraScan().setAnalyzeImage(false);\r\n        // 返回结果\r\n        Intent intent = new Intent();\r\n        intent.putExtra(CameraScan.SCAN_RESULT, result.getResult().getText());\r\n        setResult(Activity.RESULT_OK, intent);\r\n        finish();\r\n    }\r\n}\r\n\r\n```\r\n\r\n\u003e **BarcodeCameraScanFragment** 的使用方式与之类似。\r\n\r\n更多使用详情，请查看[app](app)中的源码使用示例或直接查看[API帮助文档](https://jenly1314.github.io/ZXingLite/api/)\r\n\r\n### 其他\r\n\r\n#### JDK版本与API脱糖\r\n\r\n当使用ZXingLite为 **v2.3.0 ~ v3.0.1** 之间版本时，（即：使用的zxing为v3.5.1版本时）；如果要兼容Android 7.0 (N) 以下版本（即：minSdk\u003c24），可通过脱糖获得 Java 8 及更高版本 API。\r\n\r\n```gradle\r\ncompileOptions {\r\n    // Flag to enable support for the new language APIs\r\n    coreLibraryDesugaringEnabled true\r\n    // Sets Java compatibility to Java 11\r\n    targetCompatibility JavaVersion.VERSION_11\r\n    sourceCompatibility JavaVersion.VERSION_11\r\n}\r\n\r\n```\r\n\r\n```gradle\r\ndependencies {\r\n    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.2.3'\r\n}\r\n```\r\n\r\n\u003e ZXingLite **v3.1.0** 以后版本（无需脱糖），因为zxing **v3.5.2** 又恢复了与旧版 JDK 的兼容性；详情见：[zxing-3.5.2](https://github.com/zxing/zxing/releases/tag/zxing-3.5.2)\r\n\r\n## 相关推荐\r\n\r\n- [MLKit](https://github.com/jenly1314/MLKit) 一个强大易用的工具包。通过ML Kit您可以很轻松的实现文字识别、条码识别、图像标记、人脸检测、对象检测等功能。\r\n- [WeChatQRCode](https://github.com/jenly1314/WeChatQRCode) 基于OpenCV开源的微信二维码引擎移植的扫码识别库。\r\n- [CameraScan](https://github.com/jenly1314/CameraScan) 一个简化扫描识别流程的通用基础库。\r\n- [ViewfinderView](https://github.com/jenly1314/ViewfinderView) ViewfinderView一个取景视图：主要用于渲染扫描相关的动画效果。\r\n- [LibYuv](https://github.com/jenly1314/libyuv) 基于Google的libyuv编译封装的YUV转换工具库，主要用途是在各种YUV与RGB之间进行相互转换、裁减、旋转、缩放、镜像等。\r\n- [LogX](https://github.com/jenly1314/LogX) 一个轻量而强大的日志框架；好用不解释。\r\n\r\n\u003c!-- end --\u003e\r\n\r\n## 版本日志\r\n\r\n#### v3.2.0：2024-07-16\r\n* 更新CameraScan至v1.2.0\r\n* 更新ViewfinderView至v1.2.0\r\n* 优化细节\r\n\r\n#### [查看更多版本日志](CHANGELOG.md)\r\n\r\n## 赞赏\r\n如果您喜欢ZXingLite，或感觉ZXingLite帮助到了您，可以点右上角“Star”支持一下，您的支持就是我的动力，谢谢 :smiley:\r\n\u003cp\u003e您也可以扫描下面的二维码，请作者喝杯咖啡 :coffee:\r\n\r\n\u003cdiv\u003e\r\n   \u003cimg src=\"https://jenly1314.github.io/image/page/rewardcode.png\"\u003e\r\n\u003c/div\u003e\r\n\r\n## 关于我\r\n\r\n| 我的博客                                                                                | GitHub                                                                                  | Gitee                                                                                  | CSDN                                                                                 | 博客园                                                                            |\r\n|:------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------|\r\n| \u003ca title=\"我的博客\" href=\"https://jenly1314.github.io\" target=\"_blank\"\u003eJenly's Blog\u003c/a\u003e | \u003ca title=\"GitHub开源项目\" href=\"https://github.com/jenly1314\" target=\"_blank\"\u003ejenly1314\u003c/a\u003e | \u003ca title=\"Gitee开源项目\" href=\"https://gitee.com/jenly1314\" target=\"_blank\"\u003ejenly1314\u003c/a\u003e  | \u003ca title=\"CSDN博客\" href=\"http://blog.csdn.net/jenly121\" target=\"_blank\"\u003ejenly121\u003c/a\u003e  | \u003ca title=\"博客园\" href=\"https://www.cnblogs.com/jenly\" target=\"_blank\"\u003ejenly\u003c/a\u003e  |\r\n\r\n## 联系我\r\n\r\n| 微信公众号        | Gmail邮箱                                                                          | QQ邮箱                                                                              | QQ群                                                                                                                       | QQ群                                                                                                                       |\r\n|:-------------|:---------------------------------------------------------------------------------|:----------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------|\r\n| [Jenly666](http://weixin.qq.com/r/wzpWTuPEQL4-ract92-R) | \u003ca title=\"给我发邮件\" href=\"mailto:jenly1314@gmail.com\" target=\"_blank\"\u003ejenly1314\u003c/a\u003e | \u003ca title=\"给我发邮件\" href=\"mailto:jenly1314@vip.qq.com\" target=\"_blank\"\u003ejenly1314\u003c/a\u003e | \u003ca title=\"点击加入QQ群\" href=\"https://qm.qq.com/cgi-bin/qm/qr?k=6_RukjAhwjAdDHEk2G7nph-o8fBFFzZz\" target=\"_blank\"\u003e20867961\u003c/a\u003e | \u003ca title=\"点击加入QQ群\" href=\"https://qm.qq.com/cgi-bin/qm/qr?k=Z9pobM8bzAW7tM_8xC31W8IcbIl0A-zT\" target=\"_blank\"\u003e64020761\u003c/a\u003e |\r\n\r\n\u003cdiv\u003e\r\n   \u003cimg src=\"https://jenly1314.github.io/image/page/footer.png\"\u003e\r\n\u003c/div\u003e\r\n\r\n\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenly1314%2Fzxinglite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjenly1314%2Fzxinglite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenly1314%2Fzxinglite/lists"}