生成和扫描二维码(ZXing库)_zxing 3.5-程序员宅基地

技术标签: android studio  Android项目  

生成和扫描二维码(ZXing库)

一、ZXing概述

ZXing是谷歌自己推出的一个开源源码的二维码框架,可以实现使用手机的摄像头完成条形码的扫描和解码。

二、整合ZXing框架

  1. 将预先获取的core-3.4.0.jar包复制到工程的app\libs目录,刷新,然后添加依赖

  2. 集成java源码,将demo工程QrScan中app\src\main\java目录下包中的zxing和util复制到本工程对应的app\src\main\java的包下

  3. 然后修改package包名,修改import路径,修改类包名

  4. 同步资源,复制资源目录

    drawable:btn_back.png,flash_off.png,flash_on.png

    layout:复制activity_capture.xml,activity_scanner.xml,toolbar_scanner.xml

    raw:全部复制

    values:复制/替换其中的attrs.xml,ids.xml,colors.xml

  5. 修改工具栏框架包和ViewFinderView包路径

  6. 打开开发权限,在清单文件中添加开发权限

        <uses-permission android:name="android.permission.VIBRATE"></uses-permission>
        <uses-permission android:name="android.permission.CAMERA"></uses-permission>
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
    
    
            <activity android:name=".zxing.activity.CaptureActivity"></activity>
    
  7. 最后运行一下工程,如果不出现错误则整合成功

三、界面设计

activity_main.xml

<com.google.android.material.appbar.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay" />

</com.google.android.material.appbar.AppBarLayout>

<include layout="@layout/content_main" />

<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    app:srcCompat="@android:drawable/ic_dialog_email" />

content_main.xml

<TextView
    android:id="@+id/myTextView"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="48dp"
    android:hint="扫描结果"
    android:textSize=</
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43916678/article/details/121124984

智能推荐

Linux 磁盘管理及磁盘分区(主分区、扩展分区、逻辑分区)_linux分区-程序员宅基地

文章浏览阅读9.7k次,点赞26次,收藏104次。Linux 磁盘管理及磁盘分区(主分区、扩展分区、逻辑分区)MBR xfsswapFAT16 FAT32EXT4JFS_linux分区

java关键字abstract(抽象)详解_abstractjava-程序员宅基地

文章浏览阅读10w+次,点赞227次,收藏778次。说到抽象,想必大家第一个联想到的就是抽象画,基本上看不懂画的是啥,只能说它在表达某个概念。 在java中我们中abstract关键字来表达抽象。举个例子: 我们说车子都可以跑(run)。但有几个轮子,怎么跑,对于不同的车有不同的结果。自行车需要人踩着跑,汽车发动机推动跑等等,那么我们可以车表达为抽象类。/** * 车子类 */public abstract class Car {_abstractjava

使用el-table选择进行保存,实现分页多选,设置选中,编辑原数据默认值不变_el-table 多选框默认选中 样式不更新-程序员宅基地

文章浏览阅读1.7k次。el-table分页选择,默认选中设置,二次选择原商品编辑的数据不变_el-table 多选框默认选中 样式不更新

信息安全产品认证_网络关键设备和网络安全专用产品安全认证证书-程序员宅基地

文章浏览阅读5.6k次。目前市场上通行的信息安全产品认证有三种,分别是:1.《网络关键设备和网络安全专用产品安全认证证书》2.《中国国家信息安全产品认证证书》3.《IT产品信息安全认证证书》其中《中国国家信息安全产品认证证书》、《网络关键设备和网络安全专用产品安全认证证书》为强制性认证证书,在产品功能和性能满足条件的情况下,两张证书可以同一产品同时认证同时发证。《IT产品信息安全认证证书》为自愿性认证证书。_网络关键设备和网络安全专用产品安全认证证书

从零构建一个微信小程序_从零搭建一个微信小程序-程序员宅基地

文章浏览阅读1.3k次。一、微信小程序介绍微信小程序,简称小程序,英文名:Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。1.1 为什么是微信小程序?微信有海量用户,而且粘性很高,在微信里开发产品更容易触达用户。推广 app 或公众号的成本太高。开发适配成本低。容易小规模试错,然后快速迭代。跨平台。1.2 还有其他的小程序 不容忽视支付宝小程序百度小程序QQ 小程序今日头条 + 抖音小程序1.3 优秀的第三方小程序_从零搭建一个微信小程序

前端开发:CSS的“*”“#”“.”符号的对比使用_css中".","#","*"的区别和作用-程序员宅基地

文章浏览阅读4.9k次,点赞2次,收藏7次。在前端开发过程中,CSS是前端的三驾马车之一,关于CSS的使用也是非常重要的环节,可能有人觉得在前端学习或开发中最容易的就是关于CSS的,但是要想精通使用CSS也不是一件容易的事情,也就是看着简单要想完美使用难,所以CSS的使用也是不容忽视的。本篇博文来分享一个关于CSS的符号相关内容,关于它的使用也是比较常用的,常用的有:“*”、“#”、“.”等符号,所以在前端项目开发中经常会用到该功能,总结一下,方便查阅使用。.................._css中".","#","*"的区别和作用

随便推点

Python数据处理040:数据分析之Excel文件_python分析excel数据-程序员宅基地

文章浏览阅读2.9k次。Python数据分析之Excel文件_python分析excel数据

11. python入门复习教程之命名空间与作用域,再谈异常,标准库,持久化与序列化_websocket 命名空间的作用-程序员宅基地

文章浏览阅读1.9w次,点赞10次,收藏14次。如果你学习 python 一段时间之后,会经常碰到命名空间,作用域 这两个名词,接下来咱们就从这两个名词开始入手,展开这篇博客。命名空间与作用域命名空间是指对象所处的位置,命名二字一般指的是变量名,举一个例子,例如在某个函数内,如果使用了 a = 100 这行代码,遵循的规则是在这个命名空间内,如果之前没有变量 a,那此时定义 a 并且对 a 赋值,如果之前存在 a,那对之前的赋值进行覆盖,这个函数内部,就是变量 a 的命名空间。作用域指的是某个对象的有效作用范围,这个作用范围又由命名空间决定,所以在_websocket 命名空间的作用

转:Android原生PDF功能实现:PDF阅读、PDF页面跳转、PDF手势伸缩、PDF目录树、PDF预览缩略图_android pdf 目录-程序员宅基地

文章浏览阅读511次。基于Google的android-pdfview拓展的pdf阅读功能:(先把地址保存下来,就怕大佬哪天心情不好给删了)简书大佬博客:https://www.jianshu.com/p/eec432fa89afDemo下载地址(github + 百度网盘):https://github.com/qxcwanxss/AndroidPdfViewerDemohttps://pan.baidu.c..._android pdf 目录

关于app inventor跨界面连接蓝牙并且一键SOS拨打电话求救(三)_app inventor 电话拨号器-程序员宅基地

文章浏览阅读2.5k次,点赞3次,收藏18次。之前写的两个博客都是在做一个项目中遇到的问题,因为自己没有在网上找到太多资料,所以记录了下来,第三个博客是把前两个博客连接了起来。有不懂得可以看看前面两个,或者在下面留言。Arduino和蓝牙程序和第一个博客的程序一样,只是改了一下延时const int buttonPin = 2; // 连接按键的引脚 // 变量定义int buttonState = 0; ..._app inventor 电话拨号器

超好用的几个开发工具使用_sqlitestudio自动补全-程序员宅基地

文章浏览阅读8.3k次。1. Makefile 作用2. Makefile的语法规则3. Makefile使用_sqlitestudio自动补全

Matlab 凸优化工具包cvx安装更换版本步骤-程序员宅基地

文章浏览阅读1.6w次,点赞15次,收藏95次。1、先去cvx官网下载cvx安装包。这里也有一份安装包,亲测可以使用 cvx安装包2、将cvx安装包拷贝到matlab文件的bin目录下3、打开matlab,打开bin目录下的cvx文件夹4、命令行窗口输入 cvx_setup 回车 等待安装如图中所示,就表明安装成功啦..._cvx安装

推荐文章

热门文章

相关标签