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初始版本