• Stars
    star
    3,050
  • Rank 14,770 (Top 0.3 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created over 6 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🔥 ZXing的精简极速版,优化扫码和生成二维码/条形码,内置闪光灯等功能。扫描风格支持:微信的线条样式,支付宝的网格样式。几句代码轻松拥有扫码功能 ,ZXingLite让集成更简单。(扫码识别速度快如微信)

ZXingLite

Image

Download MavenCentral JCenter JitPack CI CircleCI API License Blog QQGroup

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

简单如斯,你不试试?

Gif 展示

Image

你也可以直接下载 演示App 体验效果

ViewfinderView属性说明

属性 属性类型 默认值 属性说明
maskColor color #60000000 扫描区外遮罩的颜色
frameColor color #7F1FB3E2 扫描区边框的颜色
cornerColor color #FF1FB3E2 扫描区边角的颜色
laserColor color #FF1FB3E2 扫描区激光线的颜色
labelText string 扫描提示文本信息
labelTextColor color #FFC0C0C0 提示文本字体颜色
labelTextSize dimension 14sp 提示文本字体大小
labelTextPadding dimension 24dp 提示文本距离扫描区的间距
labelTextWidth dimension 提示文本的宽度,默认为View的宽度
labelTextLocation enum bottom 提示文本显示位置
frameWidth dimension 扫码框宽度
frameHeight dimension 扫码框高度
laserStyle enum line 扫描激光的样式
gridColumn integer 20 网格扫描激光列数
gridHeight integer 40dp 网格扫描激光高度,为0dp时,表示动态铺满
cornerRectWidth dimension 4dp 扫描区边角的宽
cornerRectHeight dimension 16dp 扫描区边角的高
scannerLineMoveDistance dimension 2dp 扫描线每次移动距离
scannerLineHeight dimension 5dp 扫描线高度
frameLineWidth dimension 1dp 边框线宽度
scannerAnimationDelay integer 20 扫描动画延迟间隔时间,单位:毫秒
frameRatio float 0.625f 扫码框与屏幕占比
framePaddingLeft dimension 0 扫码框左边的内间距
framePaddingTop dimension 0 扫码框上边的内间距
framePaddingRight dimension 0 扫码框右边的内间距
framePaddingBottom dimension 0 扫码框下边的内间距
frameGravity enum center 扫码框对齐方式
pointColor color #FF1FB3E2 结果点的颜色
pointStrokeColor color #FFFFFFFF 结果点描边的颜色
pointRadius dimension 15dp 结果点的半径
pointStrokeRatio float 1.2 结果点描边半径与结果点半径的比例
pointDrawable reference 结果点自定义图片
showPointAnim boolean true 是否显示结果点的动画
laserDrawable reference 扫描激光自定义图片
laserDrawableRatio float 0.625f 激光扫描图片与屏幕占比
viewfinderStyle enum classic 取景框样式;支持:classic:经典样式(带扫码框那种)、popular:流行样式(不带扫码框)

引入

Gradle:

  1. 在Project的 build.gradle 里面添加远程仓库
allprojects {
    repositories {
        //...
        mavenCentral()
    }
}
  1. 在Module的 build.gradle 里面添加引入依赖项
// AndroidX 版本
implementation 'com.github.jenly1314:zxing-lite:2.4.0'

温馨提示

关于ZXingLite版本与编译的SDK版本要求

使用 v2.3.x 以上版本时,要求 compileSdkVersion >= 33

使用 v2.2.x 以上版本时,要求 compileSdkVersion >= 31

如果 compileSdkVersion < 31 请使用 v2.2.x 以前的版本

对于需兼容 Android 5.0 (N) 以下版本的老项目(即:minSdk<21),可使用1.x旧版本

v1.x 旧版本 v1.1.9

Gradle

  1. 在Project的 build.gradle 里面添加远程仓库
allprojects {
    repositories {
        //...
        jcenter()
    }
}
  1. 在Module的 build.gradle 里面添加引入依赖项
// AndroidX 版本
implementation 'com.king.zxing:zxing-lite:1.1.9-androidx'

// Android Support 版本
implementation 'com.king.zxing:zxing-lite:1.1.9'

对于 v1.x 版本,当你看到这里,此时的 JCenter 仓库如果已关闭, 可使用 JitPack 仓库

使用说明

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

1、直接使用CaptureActivity或者CaptureFragment。(默认的扫码实现)

2、通过继承CaptureActivity或者CaptureFragment并自定义布局。(适用于大多场景,并无需关心扫码相关逻辑,自定义布局时需覆写getLayoutId方法)实现示例:CustomCaptureActivityQRCodeActivity

3、在你项目的Activity或者Fragment中实例化一个CameraScan即可。(适用于想在扫码界面写交互逻辑,又因为项目架构或其它原因,无法直接或间接继承CaptureActivity或CaptureFragment时使用)实现示例:CustomFullScanActivity

4、继承CameraScan自己实现一个,可参照默认实现类DefaultCameraScan,其它步骤同方式3。(扩展高级用法,谨慎使用)

关于 CameraScan

CameraScan 作为相机扫描的(核心)基类;所有与相机扫描相关的都是基于此类来直接或间接进行控制的。

关于 CameraConfig

主要是相机相关的配置;如:摄像头的前置后置、相机预览相关、图像分析相关等配置。

你可以直接库中内置实现的相机配置: CameraConfigAspectRatioCameraConfigResolutionCameraConfig

这里简单说下各自的特点:

  • CameraConfig:默认的相机配置。
  • AspectRatioCameraConfig:根据纵横比配置相机,使输出分析的图像尽可能的接近屏幕的比例
  • ResolutionCameraConfig:根据尺寸配置相机的目标图像大小,使输出分析的图像的分辨率尽可能的接近屏幕尺寸

你也可以自定义或覆写 CameraConfig 中的 options 方法,根据需要定制配置。

这里特别温馨提示:默认配置在未配置相机的目标分析图像大小时,会优先使用:横屏:640 * 480 竖屏:480 * 640;

根据这个图像质量顺便说下默认配置的优缺点:

  • 优点:因为图像质量不高,所以在低配置的设备上使用也能hold住,这样就能尽可能的适应各种设备;
  • 缺点:正是由于图像质量不高,从而可能会对检测识别率略有影响,比如在某些机型上体验欠佳。
  • 结论:在适配、性能与体验之间得有所取舍,找到平衡点。

当使用默认的 CameraConfig 在某些机型上体验欠佳时,你可以尝试使用 AspectRatioCameraConfigResolutionCameraConfig 会有意想不到奇效。

关于 Analyzer

Analyzer 为定义的分析器接口;主要用于分析相机预览的帧数据;通过实现 Analyzer 可以自定义分析过程。

关于 CaptureActivityCaptureFragment

CaptureActivityCaptureFragment 作为扫描预览界面的基类,主要目的是便于快速实现扫码识别。

扫描预览界面内部持有 CameraScan,并处理了 CameraScan 的初始化(如:相机权限、相机预览、生命周期等细节)

使用示例

CameraScan配置示例

CameraScan 里面包含部分支持链式调用的方法,即调用返回是 CameraScan 本身的一些配置建议在调用 startCamera() 方法之前调用。

如果是通过继承 CaptureActivity 或者 CaptureFragment 或其子类实现的相机扫描,可以在 initCameraScan() 方法中获取 CameraScan ,然后根据需要修改相关配置。

示例1:

// 获取CameraScan,扫码相关的配置设置。CameraScan里面包含部分支持链式调用的方法,即调用返回是CameraScan本身的一些配置建议在startCamera之前调用。
getCameraScan().setPlayBeep(true)//设置是否播放音效,默认为false
        .setVibrate(true)//设置是否震动,默认为false
        .setCameraConfig(new ResolutionCameraConfig(this))//设置相机配置信息,CameraConfig可覆写options方法自定义配置
        .setNeedAutoZoom(false)//二维码太小时可自动缩放,默认为false
        .setNeedTouchZoom(true)//支持多指触摸捏合缩放,默认为true
        .setDarkLightLux(45f)//设置光线足够暗的阈值(单位:lux),需要通过{@link #bindFlashlightView(View)}绑定手电筒才有效
        .setBrightLightLux(100f)//设置光线足够明亮的阈值(单位:lux),需要通过{@link #bindFlashlightView(View)}绑定手电筒才有效
        .bindFlashlightView(ivFlashlight)//绑定手电筒,绑定后可根据光线传感器,动态显示或隐藏手电筒按钮
        .setOnScanResultCallback(this)//设置扫码结果回调,需要自己处理或者需要连扫时,可设置回调,自己去处理相关逻辑
        .setAnalyzer(new MultiFormatAnalyzer(new DecodeConfig()))//设置分析器,DecodeConfig可以配置一些解码时的配置信息,如果内置的不满足您的需求,你也可以自定义实现,
        .setAnalyzeImage(true);//设置是否分析图片,默认为true。如果设置为false,相当于关闭了扫码识别功能
        
// 启动预览(如果是通过继承CaptureActivity或CaptureFragment实现的则无需调用startCamera)
getCameraScan().startCamera();

// 设置闪光灯(手电筒)是否开启,需在startCamera之后调用才有效
getCameraScan().enableTorch(torch);

示例2:(只需识别二维码的配置示例)

// 初始化解码配置
DecodeConfig decodeConfig = new DecodeConfig();
decodeConfig.setHints(DecodeFormatManager.QR_CODE_HINTS)//如果只有识别二维码的需求,这样设置效率会更高,不设置默认为DecodeFormatManager.DEFAULT_HINTS
    .setFullAreaScan(false)//设置是否全区域识别,默认false
    .setAreaRectRatio(0.8f)//设置识别区域比例,默认0.8,设置的比例最终会在预览区域裁剪基于此比例的一个矩形进行扫码识别
    .setAreaRectVerticalOffset(0)//设置识别区域垂直方向偏移量,默认为0,为0表示居中,可以为负数
    .setAreaRectHorizontalOffset(0);//设置识别区域水平方向偏移量,默认为0,为0表示居中,可以为负数

// 在启动预览之前,设置分析器,只识别二维码
getCameraScan()
        .setCameraConfig(new AspectRatioCameraConfig(this))//设置相机配置,使用 AspectRatioCameraConfig
        .setVibrate(true)//设置是否震动,默认为false
        .setAnalyzer(new MultiFormatAnalyzer(decodeConfig));//设置分析器,如果内置实现的一些分析器不满足您的需求,你也可以自定义去实现

布局示例

PreviewView 用来预览,布局内至少要保证有 PreviewView,如果是继承 CaptureActivityCaptureFragment,控件id可覆写getPreviewViewId方法自定义

ViewfinderView 用来渲染扫码视图,给用户起到一个视觉效果,本身扫码识别本身没有关系,如果是继承 CaptureActivityCaptureFragment,控件ID可复写getViewfinderViewId方法自定义,默认为 previewView,返回0表示无需 ViewfinderView

ivFlashlight 是布局内置的手电筒,如果是继承 CaptureActivityCaptureFragment,控件id可复写getFlashlightId方法自定义,默认为 ivFlashlight。返回0表示无需内置手电筒。您也可以自己去定义

可自定义布局(覆写getLayoutId方法),布局内至少要保证有 PreviewView

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <androidx.camera.view.PreviewView
        android:id="@+id/previewView"
        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" />

    <ImageView
        android:id="@+id/ivFlashlight"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="@dimen/zxl_flashlight_margin_top"
        android:contentDescription="@null"
        android:src="@drawable/zxl_flashlight_selector" />
</FrameLayout>

或在你的布局中添加

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

代码示例

工具类CodeUtils的使用示例(二维码/条形码)

    // 生成二维码
    CodeUtils.createQRCode(content,600,logo);
    // 生成条形码
    CodeUtils.createBarCode(content, BarcodeFormat.CODE_128,800,200);
    // 解析条形码/二维码
    CodeUtils.parseCode(bitmap);
    // 解析二维码
    CodeUtils.parseQRCode(bitmap);

通过继承CaptureActivity实现扫二维码完整示例

public class QRCodeActivity extends CaptureActivity {


    @Override
    public int getLayoutId() {
        return R.layout.qr_code_activity;
    }

    @Override
    public void initCameraScan() {
        super.initCameraScan();

        //初始化解码配置
        DecodeConfig decodeConfig = new DecodeConfig();
        decodeConfig.setHints(DecodeFormatManager.QR_CODE_HINTS)//如果只有识别二维码的需求,这样设置效率会更高,不设置默认为DecodeFormatManager.DEFAULT_HINTS
            .setFullAreaScan(false)//设置是否全区域识别,默认false
            .setAreaRectRatio(0.8f)//设置识别区域比例,默认0.8,设置的比例最终会在预览区域裁剪基于此比例的一个矩形进行扫码识别
            .setAreaRectVerticalOffset(0)//设置识别区域垂直方向偏移量,默认为0,为0表示居中,可以为负数
            .setAreaRectHorizontalOffset(0);//设置识别区域水平方向偏移量,默认为0,为0表示居中,可以为负数

        //在启动预览之前,设置分析器,只识别二维码
        getCameraScan()
                .setVibrate(true)//设置是否震动,默认为false
                .setNeedAutoZoom(true)//二维码太小时可自动缩放,默认为false
                .setAnalyzer(new MultiFormatAnalyzer(decodeConfig));//设置分析器,如果内置实现的一些分析器不满足您的需求,你也可以自定义去实现
    }


    /**
     * 扫码结果回调
     * @param result
     * @return 返回false表示不拦截,将关闭扫码界面并将结果返回给调用界面;
     *  返回true表示拦截,需自己处理逻辑。当isAnalyze为true时,默认会继续分析图像(也就是连扫)。
     *  如果只是想拦截扫码结果回调,并不想继续分析图像(不想连扫),请在拦截扫码逻辑处通过调
     *  用{@link CameraScan#setAnalyzeImage(boolean)},
     *  因为{@link CameraScan#setAnalyzeImage(boolean)}方法能动态控制是否继续分析图像。
     *
     */
    @Override
    public boolean onScanResultCallback(Result result) {
        /*
         * 因为setAnalyzeImage方法能动态控制是否继续分析图像。
         *
         * 1. 因为分析图像默认为true,如果想支持连扫,返回true即可。
         * 当连扫的处理逻辑比较复杂时,请在处理逻辑前调用getCameraScan().setAnalyzeImage(false),
         * 来停止分析图像,等逻辑处理完后再调用getCameraScan().setAnalyzeImage(true)来继续分析图像。
         *
         * 2. 如果只是想拦截扫码结果回调自己处理逻辑,但并不想继续分析图像(即不想连扫),可通过
         * 调用getCameraScan().setAnalyzeImage(false)来停止分析图像。
         */
        return super.onScanResultCallback(result);
    }
}

更多使用详情,请查看app中的源码使用示例或直接查看API帮助文档

其他

AndroidManifest

如果你直接使用了默认 CaptureActivity ,则需在你项目的AndroidManifest中注册 CaptureActivity,配置如下

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

JDK版本

需使用JDK8+编译,在你项目中的build.gradle的android{}中添加配置:

compileOptions {
    targetCompatibility JavaVersion.VERSION_1_8
    sourceCompatibility JavaVersion.VERSION_1_8
}

API脱糖

当使用ZXingLite为 v2.3.x 以上版本时,(即:更新zxing至v3.5.1后);如果要兼容Android 7.0 (N) 以下版本(即:minSdk<24),可通过脱糖获得 Java 8 及更高版本 API。

compileOptions {
    // Flag to enable support for the new language APIs
    coreLibraryDesugaringEnabled true
    // Sets Java compatibility to Java 8
    targetCompatibility JavaVersion.VERSION_1_8
    sourceCompatibility JavaVersion.VERSION_1_8
}
dependencies {
    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.2.2'
}

相关推荐

MLKit 一个强大易用的工具包。通过ML Kit您可以很轻松的实现文字识别、条码识别、图像标记、人脸检测、对象检测等功能。

WeChatQRCode 基于OpenCV开源的微信二维码引擎移植的扫码识别库。

版本说明

v2.x 基于CameraX进行了重构

v2.x 相对于 v1.x 的优势

  • v2.x基于CameraX,抽象整体流程,可扩展性更高。
  • v2.x基于CameraX通过预览裁剪的方式确保预览界面不变形,无需铺满屏幕,就能适配(v1.x通过遍历Camera支持预览的尺寸,找到与屏幕最接近的比例,减少变形的可能性(需铺满屏幕,才能适配))

v2.x 特别说明

  • v2.x如果您是通过继承CaptureActivity或CaptureFragment实现扫码功能,那么动态权限申请相关都已经在CaptureActivity或CaptureFragment处理好了。
  • v2.x如果您是通过继承CaptureActivity或CaptureFragment实现扫码功能,如果有想要修改默认配置,可重写initCameraScan方法,修改CameraScan的配置即可,如果无需修改配置,直接在跳转原界面的onActivityResult 接收扫码结果即可(更多具体详情可参见app中的使用示例)。

v1.x 说明

【v1.1.9】 如果您正在使用 1.x 版本请点击下面的链接查看分支版本,当前 2.x 版本已经基于 CameraX 进行重构,API变化较大,谨慎升级。

查看AndroidX版 1.x 分支 请戳此处

查看Android Support版 1.x 分支 请戳此处

查看 1.x API帮助文档

版本记录

v2.4.0:2023-4-15

  • 优化CameraScan的缺省配置(CameraConfig相关配置)
  • 优化ViewfinderView自定义属性(新增laserDrawableRatio)
  • 优化ImageAnalyzer中YUV数据的处理
  • 更新CameraX至v1.2.2

v2.3.1:2023-3-4

  • 更新CameraX至v1.2.1
  • 更新Gradle至v7.5
  • 优化细节

v2.3.0:2022-12-11

  • 更新CameraX至v1.2.0
  • 更新zxing至v3.5.1
  • 更新compileSdkVersion至33

查看更多版本记录

赞赏

如果您喜欢ZXingLite,或感觉ZXingLite帮助到了您,可以点右上角“Star”支持一下,您的支持就是我的动力,谢谢 😃

您也可以扫描下面的二维码,请作者喝杯咖啡

关于我

Name: Jenly

Email: jenly1314#gmail.com / jenly1314#vip.qq.com

CSDN: jenly121

CNBlogs: jenly

GitHub: jenly1314

Gitee: jenly1314

加入QQ群: 20867961

More Repositories

1

KingTV

📺 【停止维护】高仿全民直播(全民TV),项目采用 MVP + RXJava + Retrofit + OKHttp + Material Design + Dagger2 + Base + Glide + GreenDao构建。因为全民TV已经凉了,导致App已经连不上了。在这里特意向你推荐MVPFrame: https://github.com/jenly1314/MVPFrame 和你值得拥有的MVVMFrame快速开发框架: https://github.com/jenly1314/MVVMFrame
Java
1,604
star
2

MLKit

🌝 MLKit是一个强大易用的工具包。通过ML Kit您可以很轻松的实现文字识别、条码识别、图像标记、人脸检测、对象检测等功能。
Java
909
star
3

AppUpdater

🚀 AppUpdater一个专注于App更新,一键傻瓜式集成App版本升级的轻量开源库。(集成步骤超简单)
Java
876
star
4

WeChatQRCode

⛄ 基于OpenCV开源的微信二维码引擎移植的二维码扫码识别库
C++
617
star
5

CircleProgressView

🎡 CircleProgressView是一个圆形渐变的进度动画控件(支持外环显示刻度,内环随之变化,配置参数完全可配),动画效果纵享丝滑。
Java
447
star
6

WanAndroid

🏄 基于Architecture Components dependencies (Lifecycles,LiveData,ViewModel,Room)构建的WanAndroid开源项目。 你值得拥有的MVVM快速开发框架:https://github.com/jenly1314/MVVMFrame
Java
417
star
7

MVVMFrame

🏰 MVVMFrame for Android 是一个基于Google官方推出的JetPack构建的快速开发框架。从此构建一个MVVM模式的项目变得快捷简单。
Kotlin
369
star
8

ArcSeekBar

🎡 ArcSeekBar 一个弧形可拖动进度条控件。弧形大小,弧度,颜色渐变等配置完全可定制化
Java
313
star
9

Base

🍁 Base是针对于Android开发封装好一些常用的基类,主要包括通用的Adapter、Activity、Fragment、Dialog等、和一些常用的Util类,只为更简单。
Java
265
star
10

KingKeyboard

🎹 KingKeyboard 是一个自定义键盘。内置了满足各种场景的键盘需求:包括但不限于混合、字母、数字、电话、身份证、车牌号等可输入场景。还支持自定义。集成简单,键盘可定制化。
Java
244
star
11

GiftSurfaceView

🌷 直播间送礼物拼图案动画控件
Java
238
star
12

SuperTextView

🎀 SuperTextView for Android 是一个在TextView的基础上扩展了几种动画效果的控件。
Java
187
star
13

NeverCrash

🌍 全局捕获Crash。信NeverCrash,永不Crash。
Java
183
star
14

FlutteringLayout

🎈 一个直播间点赞桃心飘动效果的控件
Java
162
star
15

UltraSwipeRefresh

🏄 一个可带来极致体验的Compose刷新组件;支持下拉刷新和上拉加载,可完美替代官方的SwipeRefresh;并且支持的功能更多,可扩展性更强。
Kotlin
137
star
16

SplitEditText

🔢 SplitEditText 是一个灵活的分割编辑框。常常应用于验证码输入 、密码输入等场景。
Java
123
star
17

MapHelper

🌏 MapHelper是一个整合了高德地图、百度地图、腾讯地图、谷歌地图等相关路线规划和导航的地图帮助类库
Kotlin
106
star
18

MVPFrame

🏰 MVPFrame for Android 是一个集合了 Retrofit2 + RXJava2 + OkHttp3 + Mosby3 二次封装构建的MVP快速开发框架,为敏捷开发而生。
Java
102
star
19

WaveView

🏄 WaveView 一个水波纹动画控件视图,支持波纹数,波纹振幅,波纹颜色,渐变色,波纹速度,波纹方向等属性完全可配。
Java
98
star
20

RadarView

🍳 RadarView for Android 是一个雷达扫描动画后,然后展示得分效果的控件。
Java
85
star
21

DrawBoard

🎨 DrawBoard 是一个自定义 View实现的画板;方便对图片进行编辑和各种涂鸦相关操作
Java
77
star
22

ANetty

✉️ ANetty 是基于Netty二次封装的Android链路通讯库,用以快速开发高性能,高可靠性的网络交互。在保证易于开发的同时还保证其应用的性能,稳定性和伸缩性。轻松实现长连接通讯。
Java
70
star
23

AppPay

💸 AppPay专注于App支付的库,几句代码轻松搞定微信支付、支付宝支付、银联支付。集成更简单。
Java
70
star
24

Location

📍 Location 是一个通过 Android 自带的 LocationManager 来实现的定位功能
Kotlin
64
star
25

KingPlayer

🎬 一个专注于 Android 视频播放器的基础库,无缝切换内核。(IjkPlayer、ExoPlayer、VlcPlayer、MediaPlayer)
Java
61
star
26

ImageViewer

🌅 ImageViewer是一个图片查看器(类似微信查看图片效果),一般用来查看图片详情或查看大图时使用,支持多张查看。简单易用。
Java
56
star
27

SuperSlidingPaneLayout

SuperSlidingPaneLayout 是基于SlidingPaneLayout扩展修改,新增几种不同的侧滑效果。
Java
55
star
28

SlideBar

SlideBar for Android 一个很好用的联系人字母快速索引
Java
51
star
29

SpinCounterView

🎡 一个类似于码表变化的旋转计数器动画控件
Java
51
star
30

ViewfinderView

🎯 ViewfinderView 是一个取景视图:主要用于渲染扫描相关的动画效果。其样式主要分为两大类:经典样式(带扫描框)、流行样式(不带扫描框);可任意定制。
Java
51
star
31

ASocket

🌐 ASocket 是一个TCP/UDP协议的封装库,方便快速实现TCP的长连接与UDP的单播、组播、广播等相关通信
Java
51
star
32

BaseUrlManager

⛵ BaseUrlManager的设计初衷主要用于开发时,有多个环境需要打包APK的场景,通过BaseUrlManager提供的BaseUrl动态设置入口,只需打一次包,即可轻松随意的切换不同的开发环境或测试环境。在打生产环境包时,关闭BaseUrl动态设置入口即可。
Java
50
star
33

AppTemplate

🎭 App快速构建模板,致力于快速开发实现App提供解决方案
Kotlin
44
star
34

CounterView

一个数字变化效果的计数器视图控件
Java
43
star
35

KingsGirls

👩 项目采用RXJava + Retrofit + OKHttp + Material Design + Base + Glide构建,数据来自gank.io。是一款以瀑布流的形式展示美女福利的App
Java
41
star
36

CameraScan

📷 CameraScan一个简化扫描识别流程的通用基础库
Java
37
star
37

DragPolygonView

⭐ 一个支持可拖动多边形,可拖动多边形的角改变其形状的任意多边形控件
Java
33
star
38

RetrofitHelper

💪 RetrofitHelper是一个支持配置多个BaseUrl,支持动态改变BaseUrl,动态配置超时时长的Retrofit帮助类
Java
32
star
39

MVVMFrameComponent

🏰 基于 MVVMFrame 框架 采用 JetPack (Lifecycle,LiveData,ViewModel,Room) + Dagger + DataBinding + Retrofit + OkHttp + Glide + Kotlin coroutines + ARouter等 为核心基础库构建的组件化方案
Kotlin
30
star
40

KingWeather

☁️ 一个基于Jetpack构建的MVVM天气预报APP。你值得拥有的MVVM快速开发框架:https://github.com/jenly1314/MVVMFrame
Kotlin
29
star
41

AWebSocket

🌐 AWebSocket一个基于okhttp封装的WebSocket,简洁易用。
Kotlin
28
star
42

SuperSwipeRefreshLayout

SuperSwipeRefreshLayout是在SwipeRefreshLayout的基础之上扩展修改,让其支持上拉刷新,基本用法与SwipeRefreshLayout一致。
Java
27
star
43

KVCache

📝 KVCache 是一个便于统一管理的键值缓存库;支持无缝切换缓存实现
Kotlin
26
star
44

GuidePage

📄 GuidePage是一个App欢迎引导页库。一般应用于首次打开App时的场景,通过引导页指南,概述App特色等相关信息。(链式调用,一行代码搞定)
Kotlin
23
star
45

CodeTextField

🔢 CodeTextField 一个使用 Compose 实现的验证码输入框
Kotlin
20
star
46

libyuv

🌈 基于Google的libyuv编译封装的YUV转换工具库,主要用途是在各种YUV与RGB之间进行相互转换、裁减、旋转、缩放、镜像等。(用法超简单)
C++
16
star
47

LoadingView

🍭 LoadingView 是一个圆弧加载过渡动画,圆弧个数,大小,弧度,渐变颜色,完全可配。
Kotlin
16
star
48

AppMonitor

🎯 AppMonitor 可以轻松的监听App的前后台状态变化;Activity的活跃状态变化;设备的开关屏状态变化
Kotlin
14
star
49

compose-component

🍇 compose-component 是一个Jetpack Compose的组件库;主要提供了一些小组件,便于快速使用。
Kotlin
11
star
50

EasyNote

📑 EasyNote 是一个遵循 Clean Architecture 分层,使用 Jetpack Compose 实现的笔记App
Kotlin
10
star
51

LogX

🚩 LogX 一个小而美的日志记录框架;好用不解释。
Kotlin
8
star
52

WordPOI

👍 WordPOI是一个将Word接口文档转换成JavaBean的工具库,主要目的是减少部分无脑的开发工作。
Java
7
star
53

GradlePublish

Gradle 一些常用配置
5
star
54

jenly1314.github.io

This is my personal blog repository. https://jenly1314.github.io
EJS
4
star
55

JavaFieldGenerator

☕ JavaFieldGenerator 是一个可以根据字符串内容快速生成Java字段的插件
Java
3
star
56

Http

Http
Java
2
star
57

KingVolley

KingVolley 是Volley的二次封装
Java
1
star
58

King

实现android基本网络通信和常用工具类封装的简易框架
Java
1
star