效果圖
隨便講講實現,首先,這個的難點是自定義view如何獲取使用者的輸入。
現在能找到的仿支付寶的這個密碼輸入框,其他網友主要是直接繼承edittext來解決輸入問題,或者用viewgroup來包裹edittext等,沒有直接繼承view來解決問題的,我在簡單的檢視edittext原始碼和搜尋stack overflow後,提供了這種直接繼承view,自己監聽輸入的實現方式。大部分的需求都可以通過google直接或間接的解決,stack overflow上的大神還是很多的,解決問題也很深入。
首先,自定義view需要重寫以下方法:
@overridepublic boolean
oncheckistexteditor()
@override重寫這兩個方法,獲取到輸入連線,通過繼承baseinputconnection寫乙個自己的處理類。public inputconnection oncreateinputconnection(editorinfo outattrs)
class myinputconnection extends baseinputconnection
@override
public boolean committext(charsequence text, int newcursorposition)
@override
public boolean deletesurroundingtext(int beforelength, int afterlength)
return super.deletesurroundingtext(beforelength, afterlength);}}
committext所獲取到的是一些文字內容,例如輸入法輸入的單詞,短語等等,我們這裡只需要數字,這個方法可以直接返回ture,什麼也不做。
deletesurroundingtext 是個重點方法,因為我們無法監聽到軟鍵盤的del事件,必須在這裡自己傳送乙個del事件給view處理。
this.setonkeylistener(new onkeylistener()
if (keycode==keyevent.keycode_del)
if (keycode==keyevent.keycode_enter)
log.i("keycode","code=>"+keycode);
return true;
}return false;
}});
然後,我們就可以監聽keyevent 了,剩下的就ondraw就可以了。
上面的**只是示例,並不能直接用哦。下面是github位址,**和demo都在裡面,有幫助的話請給個star。
自定義純數字密碼輸入鍵盤 仿支付寶數字密碼鍵盤
前陣子遇到專案需求,需要自己整乙個純數字密碼輸入鍵盤,所以也就整出來了,如下圖 其實也就是繼承重寫了popupwindow。public classmypopupwindowextendspopupwindowimplementsview.onclicklistener private voidin...
自定義view密碼框等同於支付寶支付密碼框
android 自定義view 密碼框 例子 遵從準則 暴露您view中所有影響可見外觀的屬性或者行為。通過xml新增和設定樣式 通過元素的屬性來控制其外觀和行為,支援和重要事件交流的事件 可以通過xml定義影響外邊和行為的屬性如下 邊框圓角值,邊框顏色,分割線顏色,邊框寬度,密碼長度,密碼大小,密...
Android自定義類似支付寶密碼輸入的控制項
前言 感覺自己記憶力不是很好,很多寫過的東西容易忘記,所以還是寫個部落格記錄一下,菜鳥一枚,望各位師傅指點。嘿餵狗,來看我們要實現的效果 如果你說 開發之前當然看不到效果,看個diao啊 我只能說 會yy嗎 ps 老猿可能覺得此程式比較簡單,勿噴哈 接下來,講講如何實現,自定義控制項一般分為三種 1...