Android自定义键盘与密码输入框:使用BasicUI库的简单实现

一、前言


BasicUI是一些常用的Android UI组件和一些实用工具类封装,提高Android的开发效率

使用文档链接:github.com/Peakmain/Ba...

How to

  • Step 1. Add the JitPack repository to your build file

Add it in your root build.gradle at the end of repositories:

rust 复制代码
    allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }
  • Step 2. Add the dependency
arduino 复制代码
implementation 'com.github.Peakmain:BasicUI:+'
  • Step 3.some probleam

    如果你的gradle版本比3.5.3高,可能会出现以下几个问题:

    1、Entry name 'AndroidManifest.xml' collided

    解决办法:在gradle.properties添加以下代码

    ini 复制代码
    android.useNewApkCreator=false

    2、如果安装失败,用adb install安装报错提示如下

    failed to install app-debug.apk: Failure INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION: Failed to parse /data/app/vmdl1335956833.tmp/base.apk: Corrupt XML binary file

    解决办法:在添加依赖的build.gradle中添加以下代码

    arduino 复制代码
      android{
           packagingOptions {
            exclude 'AndroidManifest.xml'
         }
       }

二、自定义键盘

效果图

使用

xml 复制代码
        <com.peakmain.ui.widget.password.PasswordEditText
            android:id="@+id/password_edit_text"
            android:layout_width="match_parent"
            android:layout_height="@dimen/dimen_50"
            android:layout_marginLeft="@dimen/dimen_17"
            android:layout_marginRight="@dimen/dimen_17"
            android:layout_marginBottom="@dimen/dimen_16"
            app:bgColor="@color/color_f1f4f6"
            app:bgCorner="@dimen/dimen_4"
            app:layout_constraintBottom_toTopOf="@id/tv_show_password"
            app:passwordColor="@color/black" />

自定义属性说明

属性名 属性类型 描述
ckExtraKey String 是否显示身份证信息,true表示显示
ckDecimalPlaces integer 小数点后几位
ckShowKeyBroad boolean 是否显示小数点

方法说明

方法名 方法返回类型 描述
setOnCustomerKeyboardClickListener void 自定义点击事件,有三个方法实现:①、click(number: String?)点击事件;②、delete():删除事件、③、dissmiss():键盘隐藏事件

示例代码

支付密码键盘
xml 复制代码
        <com.peakmain.ui.widget.password.CustomerKeyboard
            android:id="@+id/custom_key_board"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent" />
身份证键盘
xml 复制代码
        <com.peakmain.ui.widget.password.CustomerKeyboard
            android:id="@+id/custom_key_board"
            android:layout_width="match_parent"
            android:layout_alignParentBottom="true"
            app:ckExtraKey="X"
            android:layout_height="wrap_content" />
小数点键盘
xml 复制代码
        <com.peakmain.ui.widget.password.CustomerKeyboard
            android:id="@+id/custom_key_board"
            android:layout_width="match_parent"
            android:layout_alignParentBottom="true"
            app:ckExtraKey="."
            app:ckDecimalPlaces="3"
            android:layout_height="wrap_content" />

三、自定义密码输入框

效果图

属性说明

属性名 属性类型 描述
passwordNumber integer 密码的个数
passwordRadius dimension 密码圆点的半径
passwordColor color 密码圆点的颜色
divisionLineColor color 分割线的颜色
divisionLineSize dimension 分割线的大小
bgColor color 背景边框的颜色
bgSize dimension 背景边框的大小
bgCorner dimension 背景边框的圆角大小
bgFillColor color 背景的填充颜色

方法说明

方法名 方法返回值类型 描述
addPasswordNumber void 添加密码
deletePassWord void 删除密码
setPasswordCompleteListener void 设置密码输入完成事件
setPasswordVisible void 设置密码是否可见
isPasswordVisible void 判断密码是否可见

示例

  • 布局
xml 复制代码
        <com.peakmain.ui.widget.password.PasswordEditText
            android:id="@+id/password_edit_text"
            android:layout_width="match_parent"
            android:layout_height="@dimen/dimen_50"
            android:layout_marginLeft="@dimen/dimen_17"
            android:layout_marginRight="@dimen/dimen_17"
            android:layout_marginBottom="@dimen/dimen_16"
            app:bgColor="@color/color_f1f4f6"
            app:bgCorner="@dimen/dimen_4"
            app:layout_constraintBottom_toTopOf="@id/tv_show_password"
            app:passwordColor="@color/black" />
  • 设置密码输入完成监听回调事件
kotlin 复制代码
      mEditText!!.setPasswordCompleteListener { text: String -> ToastUtils.showShort(text) }
相关推荐
WythePlus5 小时前
Android 14 SELinux策略深度解析
android·安全策略·selinux策略
俩个逗号。。8 小时前
Kotlin flow 详解
android·开发语言·kotlin
橙光成长10 小时前
android-ad-cleaner:android免 Root 批量关闭系统开屏与营销推送
android·1024程序员节
深圳雨林凯AI10 小时前
图案裂变的底色衰减:alpha通道、亮度对比与白墨分色的量化拆解
android
mmsx10 小时前
Android 模块化收口:能力组合框架、手写 LifecycleOwner 与热修复共存
android
恋猫de小郭13 小时前
Flutter 可以更直接地调用原生 API 了,Dart Direct Native Interop
android·前端·flutter
2501_9160088913 小时前
iPhone 设备信息查看,用 KeyMob 看型号、序列号、电池健康和 UDID
android·ios·小程序·https·uni-app·iphone·webview
好的佩奇1 天前
蓝牙之通信架构
android·flutter·蓝牙
FlightYe1 天前
视界原理之3D视频(四):裸眼、眼镜和头显
android·linux·c++·3d·ffmpeg·音视频
诸神黄昏EX1 天前
Android fw BatteryService
android