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) }
相关推荐
2501_9160088923 分钟前
全面介绍Fiddler、Wireshark、HttpWatch、SmartSniff和firebug抓包工具功能与使用
android·ios·小程序·https·uni-app·iphone·webview
玉梅小洋1 小时前
Windows 10 Android 构建配置指南
android·windows
Libraeking3 小时前
视觉篇:Canvas 自定义绘图与高级动画的华丽圆舞曲
android·经验分享·android jetpack
Fushize3 小时前
多模块架构下的依赖治理:如何避免 Gradle 依赖地狱
android·架构·kotlin
Jomurphys4 小时前
Kotlin - 类型别名 typealias
android·kotlin
Haha_bj4 小时前
Flutter ——flutter_screenutil 屏幕适配
android·ios
Haha_bj4 小时前
Flutter ——device_info_plus详解
android·flutter·ios
前端小伙计4 小时前
Android/Flutter 项目统一构建配置最佳实践
android·flutter
Mr_sun.6 小时前
Day09——入退管理-入住-2
android·java·开发语言
ujainu7 小时前
告别杂乱!Flutter + OpenHarmony 鸿蒙记事本的标签与分类管理(三)
android·flutter·openharmony