編輯:關於Android編程
模仿支付寶輸入效果,實現很簡單,就是畫個矩形框和圓形,其他的通過組合view來實現所有功能,雖然簡單但是封裝起來,方便以後使用,也分享一下,希望對別人也有點幫助。
1、如何使用,可以設置自己的進入退出動畫,不設置則沒有動畫效果,自己覺得封裝之後還是非常用好的。
private MyInputPwdUtil myInputPwdUtil; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myInputPwdUtil = new MyInputPwdUtil(this); myInputPwdUtil.getMyInputDialogBuilder().setAnimStyle(R.style.dialog_anim);//可以定制自己進入退出動畫,不設置沒有動畫 myInputPwdUtil.setListener(new InputPwdView.InputPwdListener() { @Override public void hide() { myInputPwdUtil.hide(); } @Override public void forgetPwd() { Toast.makeText(MainActivity.this, "忘記密碼", Toast.LENGTH_SHORT).show(); } @Override public void finishPwd(String pwd) { Toast.makeText(MainActivity.this, pwd, Toast.LENGTH_SHORT).show(); } }); } public void show(View view){ myInputPwdUtil.show(); }
2、輸入框實現主要代碼,就是繪制矩形和中間的圓形而已。
int height = getHeight(); int width = getWidth(); //畫邊框 RectF rect = new RectF(0, 0, width, height); borderPaint.setColor(borderColor); canvas.drawRoundRect(rect, borderRadius, borderRadius, borderPaint); //畫內容區域 RectF rectContent = new RectF(rect.left + defaultContentMargin, rect.top + defaultContentMargin, rect.right - defaultContentMargin, rect.bottom - defaultContentMargin); borderPaint.setColor(getResources().getColor(R.color.myInputPwdBase_gray)); canvas.drawRoundRect(rectContent, borderRadius, borderRadius, borderPaint); //畫分割線:分割線數量比密碼數少1 borderPaint.setColor(borderColor); borderPaint.setStrokeWidth(defaultSplitLineWidth); for (int i = 1; i < passwordLength; i++) { float x = width * i / passwordLength; canvas.drawLine(x, 0, x, height, borderPaint); } //畫密碼內容 float px, py = height / 2; float halfWidth = width / passwordLength / 2; for (int i = 0; i < textLength; i++) { px = width * i / passwordLength + halfWidth; canvas.drawCircle(px, py, passwordWidth, passwordPaint); }
3、作為library的module,在定義使用到的屬性的時候最好特別能區分開,設置特定的開頭,這樣能避免引入自己的工程之後導致沖突。
以上所述是小編給大家介紹的Android 仿支付寶密碼輸入框效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對本站網站的支持!
Android客戶端請求服務器端的詳細解釋1. Android客戶端與服務器端通信方式: Android與服務器通信通常采用HTTP通信方式和Socket通信方式,而HT
ContentProvider為Android四大組件之一,主要用來應用程序之間的數據共享,也就是說一個應用程序用ContentProvider將自己的數據暴露出來,其他
Java是垃圾回收語言的一種,其優點是開發者無需特意管理內存分配,降低了應用由於局部故障(segmentation fault)導致崩潰,同時防止未釋放的內存把堆棧(he
Handler是用於操作線程內部的消息隊列的類。這有點繞,沒關系,我們慢慢的來講。前面Looper一篇講到了Looper是用於給線程創建消息隊列用的,也就是說Looper