生成和扫描二维码(ZXing库)
一、ZXing概述
ZXing是谷歌自己推出的一个开源源码的二维码框架,可以实现使用手机的摄像头完成条形码的扫描和解码。
二、整合ZXing框架
-
将预先获取的core-3.4.0.jar包复制到工程的app\libs目录,刷新,然后添加依赖
-
集成java源码,将demo工程QrScan中app\src\main\java目录下包中的zxing和util复制到本工程对应的app\src\main\java的包下
-
然后修改package包名,修改import路径,修改类包名
-
同步资源,复制资源目录
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
-
修改工具栏框架包和ViewFinderView包路径
-
打开开发权限,在清单文件中添加开发权限
<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>
-
最后运行一下工程,如果不出现错误则整合成功
三、界面设计
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