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) }
相关推荐
私人珍藏库1 小时前
[Android] APK提取器(1.3.7)版本
android
m0_748232641 小时前
mysql的主从配置
android·mysql·adb
秋长愁2 小时前
Android监听应用前台的实现方案解析
android
胖虎12 小时前
2025 新版Android Studio创建Java语言项目
android·java·android studio·创建java项目
JabamiLight4 小时前
Lineageos 22.1(Android 15)Launcer简单调整初始化配置
android·android 15·lineageos 22.1·launcer
敲代码的鱼哇5 小时前
设备唯一ID获取,支持安卓/iOS/鸿蒙Next(uni-device-id)UTS插件
android·ios·uniapp·harmonyos
太空漫步117 小时前
android滑动看新闻
android
KdanMin7 小时前
“让App玩捉迷藏:Android教育平板的‘隐身术’开发实录”
android
韩曙亮7 小时前
【Android】Android 悬浮窗开发 ( 动态权限请求 | 前台服务和通知 | 悬浮窗创建 )
android·service·悬浮窗·服务·前台服务·动态权限·通知通道
双鱼大猫7 小时前
一句话说透Android里面的BufferQueue机制
android·程序员