前言

二维码扫描的功能在很多APP上都会出现,较为常用的第三方库是zxing,zxing很强大,但是有时候我们并不需要那么复杂的功能,只需要简单的扫描、生成以及处理扫描结果,一般都是通过重写几个类来实现项目需求。我开发了几个项目都用到了扫描二维码的功能,第一个项目,写了个完整的功能,之后的项目都是从第一个项目里面复制代码的,几次之后,觉得有点繁琐,所以就单独封装成一个项目,传到jcenter上,以后再遇到扫描二维码的功能,只需要在gradle导入,即可实现快速开发了。

下载APP体验

导入

compile 'com.hebin:hxbrzxing:1.0.1'

使用

导入库之后,就可以使用扫描二维码的功能了,只需要新建一个activity,然后继承CaptureActivity即可。

class MainActivity : CaptureActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)}
}

自定义使用

如果只是简单的继承,那么得到的效果图如下:

这里提供了几个可以自定义的属性;

1. 标题栏自定义

class MainActivity : CaptureActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)val view = LayoutInflater.from(this@MainActivity).inflate(R.layout.simple_title,null)setTitleView(view)}
}

2. 背景图片自定义

class MainActivity : CaptureActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setBackground(R.mipmap.ic_launcher)}
}

3. 提示文字自定义

class MainActivity : CaptureActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setTipText("请扫描二维码")}
}

4. 附加功能

class MainActivity : CaptureActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)val view= LayoutInflater.from(this@MainActivity).inflate(R.layout.simple_title,null)// 打开相册,识别图片二维码view.tvTitle.setOnClickListener { openPhoto() }// 打开闪光灯view.tvTitle.setOnClickListener { openLight() }setTitleView(view)}}

扫描结果处理

继承CaptureActivity.ResultListener,并且在oncreat里面,写上setListener(this)即可实现监听,然后在onResult里面做逻辑处理。

class MainActivity : CaptureActivity(), CaptureActivity.ResultListener {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setListener(this)}override fun onResult(result: String) {if (result.contains("http")) {Toast.makeText(this@MainActivity, "跳转到网页", Toast.LENGTH_SHORT).show()} else {Toast.makeText(this@MainActivity, "这个二维码不是网页", Toast.LENGTH_SHORT).show()}}
}

后话

至此,只要通过简单的几行代码就实现扫描二维码的功能,而且这个扫描二维码的功能,是支持连续扫描的,不需要退出重新进入即可再次扫描。项目源码已经传到github上了。

 https://github.com/Hebin320/Zxing

一分钟实现扫描二维码功能相关推荐

  1. SNF开发平台WinForm-平板拍照及扫描二维码功能

    在我们做项目的时候,经常会有移动平板处理检验,审核等,方便移动办公.这时就需要在现场拍照上传问题,把当场问题进行上传,也有已经拍完照的图片或加工过的图片进行上传.还有在车间现场一体机,工控机 这种产物 ...

  2. 让你的APP轻松加上扫描二维码功能

    在这个二维码横行的年代,如果一个APP连扫描二维码的功能都没有是会被耻笑的.今天小老虎教小白们如何为自己的APP添加扫描二维码功能和生成二维码,并做到外部扫描跳转网页,内部扫描跳转具体Activity ...

  3. 在js中调用微信的扫描二维码功能

    在js中调用微信的扫描二维码功能* 关键代码 <html> <head>`在这里插入代码片`<title>js调用微信扫一扫功能测试</title>&l ...

  4. 在Vue中调用微信的扫描二维码功能

    在Vue中调用微信的扫描二维码功能 步骤 新建vue文件(这里采用mint的标签库--就一个按钮~~) 关键代码 <template><div class="login_d ...

  5. uni-app实现扫描二维码功能

    文章目录 1.重点部分的代码 2.页面的效果图 3.总结 1.重点部分的代码 <view class="flex nfc-ewm"><view class=&qu ...

  6. ionic5 + cordova:使用QRScanner完成扫描二维码功能

    接到一个app的改造的任务,主要是适配一款手持设备,在页面上增加一个类似微信的二维码扫描的唤醒按钮,点击之后进入扫描二维码的页面---- 步骤如下: 1.在项目中下载QRCode的cordova插件: ...

  7. 关于在软件中添加扫描二维码功能的详细步骤及对应的资源。

    最近有在一款软件中添加二维码扫描功能,在网上整理了一堆资源后,把一些干货拿出来给大家分享,希望大家以后能更容易的使用这个功能. 详细步骤见这个视频连接:http://www.jikexueyuan.c ...

  8. 对于ios7扫描二维码功能的实现

    在ios7曾经,我们开发二维码扫描,或者生产都须要借助第三方的开源库进行开发. 然后升级到ios7时,在passbook中苹果自带二维码扫描功能,并且扫描速度很快,秒杀一切第三方开源库. 所以,我们做 ...

  9. Android 实现ZXING扫描二维码功能

    1.在build.gradle加入依赖: implementation 'com.journeyapps:zxing-android-embedded:4.3.0' 2.CaptureActivity ...

  10. Honeywell手机安装扫描二维码功能配置

    首先吐糟下,从未见过手机给客户之后还要配置那么多东西才能用的情况.也是醉了. 配置步骤 添加压缩包:将 update_eda50.zip 放到手机的 \honeywell\autoinstall 目录 ...

最新文章

  1. HMM -GMM 理清不错
  2. HashSet 和 LinkedHashSet 源码分析,竟如此简单!
  3. Flink的基于ValueState的状态机
  4. 与number_format函数有关的一个bug?
  5. HTML+CSS+JS实现 ❤️echarts大数据统计图表实例❤️
  6. django-django的开发流程
  7. RandomAccess接口
  8. pytho---之easydict使用
  9. nodejs基础整理
  10. 第十三章 确定性策略梯度(Deterministic Policy Gradient Algorithms,DPG)-强化学习理论学习与代码实现(强化学习导论第二版)
  11. grpc python 多进程_Python多进程通信Queue、Pipe、Value、Array实例
  12. pywifi 破解WiFi密码
  13. SMOTE算法(人工合成数据)
  14. 实战PHP皮皮虾去水印解析接口
  15. 大数据的典型应用场景及展望-札记
  16. Python轻松制作王者荣耀自动刷金币脚本
  17. 建筑能耗管理系统如何应用到办公楼中?
  18. Rust FFI 编程 - libc crate
  19. 最美的年纪、最美的夏天——毕业快乐
  20. SQL server 数据库表的配置及其表的导入导出

热门文章

  1. 视频监控存储解决方案——快速、可靠的视频存储
  2. 21天学通python 第2版_21天学通Python(第2版)
  3. 视频压缩神器--小丸工具箱--小丸工具箱入门操作教程
  4. 智能家居APP原型设计(附下载链接)—基于物联网的终端设备设计研究—Axure9高保真原型设计
  5. Windows系统安装Mysql前运行库依赖
  6. 用三张图理解深度学习的工作原理
  7. matlab直观数据处理,霍尔效应实验数据处理 [霍尔效应实验的MATLAB数据处理]
  8. iOS硬解码H264视频流
  9. 华为交换机debug icmp数据包
  10. Ubuntu服务器长时间运行爬虫程序