Android 自定義鍵盤,數字鍵盤隨機
最近重構了下自定義鍵盤專案,現 ofollow,noindex">EasyKeyboard v1.3 已釋出,歡迎star
專案介紹
EasyKeyBoardView
EasyKeyBoardView旨在幫助開發者快速實現一個自定義鍵盤,無需實現鍵盤內部的輸入邏輯,只需關注鍵盤的
佈局和輸入後的功能實現即可
功能介紹:
該庫是基於安卓原生鍵盤API實現,只需提供佈局檔案即可快速實現一個自定義鍵盤,內部已封裝好鍵盤的輸入邏輯,並提供了隨機數字鍵盤,每輸入4位則空格等功能。
本庫提供了兩種不同的彈出方式:
- 鍵盤固定在底部
- 鍵盤從底部彈出(如果鍵盤遮擋了輸入框,EasyKeyBoardView會自動將輸入框頂上去)
效果圖

效果圖1
使用
第一步:
在你的root build.gradle中新增
allprojects { repositories { ... maven { url 'https://jitpack.io' } } }
在 app build.gradle中新增
dependencies { implementation 'com.github.Jay-huangjie:EasyKeyBoardView:v1.3' }
第二步:
實現固定在底部的鍵盤
在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即可另數字恢復正常
如果需要實現焦點監聽,需要實現 setFocusChangeListence
介面,注意是專案方法不是原生Api方法噢。
實現彈出的鍵盤
在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
物件。
啟用 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中反饋,如果對你有幫助,希望給我顆小星星