天天看點

Android 自定義鍵盤,數字鍵盤随機

最近重構了下自定義鍵盤項目,現EasyKeyboard v1.4已釋出,歡迎star
項目介紹

EasyKeyBoardView

EasyKeyBoardView旨在幫助開發者快速實作一個自定義鍵盤,無需實作鍵盤内部的輸入邏輯,隻需關注鍵盤的

布局和輸入後的功能實作即可

功能介紹:

該庫是基于安卓原生鍵盤API實作,隻需提供布局檔案即可快速實作一個自定義鍵盤,内部已封裝好鍵盤的輸入邏輯,并提供了随機數字鍵盤,每輸入4位則空格等功能。

本庫提供了兩種不同的彈出方式:

  • 鍵盤固定在底部
  • 鍵盤從底部彈出(如果鍵盤遮擋了輸入框,EasyKeyBoardView會自動将輸入框頂上去)

效果圖

Android 自定義鍵盤,數字鍵盤随機

使用

第一步:

在你的root build.gradle中添加

allprojects {
		repositories {
			...
			maven { url 'https://jitpack.io' }
		}
	}
           

在 app build.gradle中添加

dependencies {
	        implementation 'com.github.Jay-huangjie:EasyKeyBoardView:v1.4'
	}
           

第二步:

實作固定在底部的鍵盤

在xml中定義:

<com.jay.easykeyboard.SystemKeyboard
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        keyboard:xmlLayoutResId="@xml/keyboard_numbers" />
           

其中:

keyboard_numbers

是該鍵盤的布局檔案,由使用者自己編寫,名稱可自取

關于xml裡codes的定義問題,可以參閱ASCI碼對照表來取值,找到對應的圖形編碼,對應的10進制就是我們想要的codes了

xml屬性:

屬性 作用
keyViewbg 用于設定鍵盤的按壓效果和按鈕之間線的粗細顔色等
xmlLayoutResId 設定鍵盤的布局檔案,必須設定
isRandom 是否數字随機

java屬性:

setXmlLayoutResId

可用于在java中指定布局

setKeyboardUI

可用來定義鍵盤上字型的UI,如顔色,大小

setKeybgDrawable

設定按壓效果檔案

setOnKeyboardActionListener

鍵盤輸入監聽

setRandomkeys

設定鍵盤數字随機,如果已随機數字,設定為false即可另數字恢複正常

實作彈出的鍵盤

在xml中定義:

<com.jay.easykeyboard.SystemKeyBoardEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        keyboard:xmlLayoutResId="@xml/keyboard_numbers"
        />
           

xml屬性:

屬性 作用
keyViewbg 用于設定鍵盤的按壓效果和按鈕之間線的粗細顔色等
xmlLayoutResId 設定鍵盤的布局檔案,必須設定
isRandom 是否數字随機
space 開啟4位空格功能,使用場景是輸入身份證或銀行卡号的時候。
outSideCancel 點選外部可關閉鍵盤

其他用法與

SystemKeyboard

一樣,

SystemKeyBoardEditText

實際是

SystemKeyboard

的進一步封裝,通過

EditText

PopupWindow

結合的方法來實作鍵盤的靈活彈出.

可以通過

getSystemKeyboard

方法來擷取到

SystemKeyBoard

對象。

如果需要實作焦點監聽,需要實作

setFocusChangeListence

接口,注意是項目方法不是原生Api方法噢。

啟用

removeCopyAndPaste

方法可以屏蔽EditText的長按複制粘貼功能

其他

如果在項目中需要進行原生與自定義鍵盤的切換或者輸入框的切換,可以使用

setEditText

方法,進行EditText的輸入目标切換

混淆:

-keep public class com.jay.easykeyboard.bean.**{ *;}

更新日志

2018/2/9
重構項目,将項目釋出到了JitPack倉庫

2018/12/17
項目v1.2重構,解決輸入框焦點選取問題,加入點選外部關閉自定義鍵盤功能,項目架構調整

2018/12/18
加入随機鍵盤功能
           

如果有别的未覆寫到的功能希望能在issuse中回報,個人能想到的場景有限,希望各位大佬集思廣益

項目位址:EasyKeyboardView

end

有任何問題可以在issuse中回報,如果對你有幫助,希望給我顆小星星