当前位置: 首页 > news >正文

zxing 扫一扫 实用工具效率很高

https://github.com/jenly1314/ZXingLite

ZXingLite for Android 是ZXing的精简版,基于ZXing库优化扫码和生成二维码/条形码功能,扫码界面完全支持自定义,也可一行代码使用默认实现的扫码功能。总之你想要的都在这里。

 

Maven:

<dependency>
  <groupId>com.king.zxing</groupId>
  <artifactId>zxing-lite</artifactId>
  <version>1.1.1</version>
  <type>pom</type>
</dependency>

Gradle:

implementation 'com.king.zxing:zxing-lite:1.1.1'

Lvy:

<dependency org='com.king.zxing' name='zxing-lite' rev='1.1.1'>
  <artifact name='$AID' ext='pom'></artifact>
</dependency>
如果Gradle出现compile失败的情况,可以在Project的build.gradle里面添加如下:(也可以使用上面的GitPack来complie)
allprojects {
    repositories {
        maven { url 'https://dl.bintray.com/jenly/maven' }
    }
}

引入的库:

compileOnly 'com.android.support:appcompat-v7:28.0.0'
api 'com.google.zxing:core:3.3.3'

示例

布局示例 (可自定义布局,布局内至少要保证有SurfaceView和ViewfinderView,控件id可根据重写CaptureActivity 的 getPreviewViewId 和 getViewFinderViewId方法自定义)

    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <SurfaceView android:id="@+id/surfaceView" android:layout_width="match_parent" android:layout_height="match_parent"/> <com.king.zxing.ViewfinderView android:id="@+id/viewfinderView" android:layout_width="match_parent" android:layout_height="match_parent"/> </FrameLayout>

代码示例 (二维码/条形码)

    //跳转的默认扫码界面
    startActivityForResult(new Intent(context,CaptureActivity.class),requestCode); //生成二维码 CodeUtils.createQRCode(content,600,logo); //生成条形码 CodeUtils.createBarCode(content, BarcodeFormat.CODE_128,800,200);

如果直接使用CaptureActivity需在您项目的AndroidManifest中添加如下配置

    <activity
        android:name="com.king.zxing.CaptureActivity" android:screenOrientation="portrait"/>

快速实现扫码有以下几种方式:

1、直接使用CaptureActivity或者CaptureFragment。(纯洁的扫码,无任何添加剂)

2、通过继承CaptureActivity或者CaptureFragment并自定义布局。(适用于大多场景,并无需关心扫码相关逻辑)

3、在你项目的Activity或者Fragment中创建创建一个CaptureHelper并在相应的生命周期中调用CaptureHelper的周期。(适用于想在扫码界面写交互逻辑,又因为项目架构或其它原因,无法直接或间接继承CaptureActivity或CaptureFragment时使用)

4、参照CaptureHelper写一个自定义的扫码帮助类,其它步骤同方式3。(扩展高级用法,谨慎使用)

更多使用详情,请查看app中的源码使用示例

版本记录

v1.1.1:2019-5-20

  • 支持扫二维码过小时,自动缩放
  • 支持垂直条形码识别(增强条形码识别,默认不支持,需CaptureHelper.supportVerticalCode(true)开启)

v1.1.0:2019-4-19

  • 将扫码相关逻辑与界面分离,ZXingLite使用更容易扩展
  • 新增CaptureFragment

v1.0.7:2019-4-9

  • 新增网格样式的扫描激光(类似支付宝扫码样式)
  • 升级Gradle至v4.6

v1.0.6:2019-1-16

  • 支持连续扫码
  • 支持横屏扫码(主要为了支持Pad)

v1.0.5:2018-12-29

  • 支持自定义扫码框宽高

v1.0.4:2018-12-19

  • 修改text相关自定义属性,如:text->labelText

v1.0.3:2018-11-20

  • 支持触摸缩放变焦

v1.0.2:2018-9-12

  • 支持条形码下方显示显示code
  • 优化相机预览尺寸遍历策略,从而降低预览变形的可能性

v1.0.1:2018-8-23

  • 优化扫码识别速度

v1.0.0:2018-8-9

  • ZXingLite初始版本

转载于:https://www.cnblogs.com/zhangqingquan/p/10956879.html

相关文章:

  • Wireshark抓包工具使用
  • Android性能优化之APK瘦身详解(瘦身73%)
  • php课程 6-22 字符串格式化函数有哪些(精问)
  • java程序员进阶:618大战前夕,一条SQL引发的深思—MySQL优化
  • kafka 发送消息使用反射调用方法
  • kubernetes基础概念(第二节)
  • postMan测试https接口
  • 深入理解javascript系列(七):闭包(1)
  • Spring cloud 安全部署与性能优化
  • GEF入门实例_总结_06_为编辑器添加内容
  • CIKERS Shane 20190605
  • py 6.13
  • Amazon推新送货无人机Prime Air
  • vue-music 关于playlist (底部播放列表组件)
  • 爬虫基础 2.4 会话和cookie
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • docker容器内的网络抓包
  • HashMap剖析之内部结构
  • If…else
  • js递归,无限分级树形折叠菜单
  • NSTimer学习笔记
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • orm2 中文文档 3.1 模型属性
  • React-redux的原理以及使用
  • 排序算法学习笔记
  • 使用 QuickBI 搭建酷炫可视化分析
  • 中文输入法与React文本输入框的问题与解决方案
  • Hibernate主键生成策略及选择
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (超详细)语音信号处理之特征提取
  • (三)Honghu Cloud云架构一定时调度平台
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)关于pipe()的详细解析
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • .Family_物联网
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET Framework 服务实现监控可观测性最佳实践
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .net中我喜欢的两种验证码
  • .考试倒计时43天!来提分啦!
  • @Bean, @Component, @Configuration简析
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • [].shift.call( arguments ) 和 [].slice.call( arguments )
  • [Assignment] C++1
  • [AutoSAR系列] 1.3 AutoSar 架构
  • [bzoj1912]异象石(set)
  • [C语言]——C语言常见概念(1)
  • [dart学习]第四篇:函数
  • [dts]Device Tree机制
  • [E链表] lc83. 删除排序链表中的重复元素(单链表+模拟)
  • [HNOI2006]鬼谷子的钱袋