当前位置: 移动技术网 > IT编程>移动开发>Android > Android仿支付宝支付密码输入框

Android仿支付宝支付密码输入框

2019年07月24日  | 移动技术网IT编程  | 我要评论

迷雾狩猎16-2,感恩母亲节手抄报,80端口被占用

本文实例为大家分享了android实现一个仿支付宝支付密码的输入框,主要实现如下:

passwordview.java

package com.jackie.alipay.password; 
 
import android.annotation.targetapi; 
import android.content.context; 
import android.graphics.canvas; 
import android.graphics.color; 
import android.graphics.paint; 
import android.os.build; 
import android.util.attributeset; 
import android.widget.edittext; 
import android.widget.toast; 
 
/** 
 * created by administrator on 2016/10/31. 
 */ 
 
public class passwordview extends edittext { 
 private paint mborderpaint; //外框画笔 
 private paint mlinepaint; //线的画笔 
 private paint mpasswordpaint; //密码画笔 
 private int mpasswordtextlength; //输入密码的长度 
 private int mwidth; 
 private int mheight; 
 
 private static final int password_length = 6;//密码的长度 
 private static final int password_radius = 15; 
 
 public passwordview(context context) { 
 this(context, null); 
 } 
 
 public passwordview(context context, attributeset attrs) { 
 this(context, attrs, 0); 
 } 
 
 public passwordview(context context, attributeset attrs, int defstyleattr) { 
 super(context, attrs, defstyleattr); 
 
 initview(); 
 } 
 
 private void initview() { 
 setfocusable(true); 
 
 mborderpaint = new paint(); 
 mborderpaint.setstrokewidth(8); 
 mborderpaint.setcolor(color.white); 
 mborderpaint.setstyle(paint.style.fill); 
 
 mlinepaint = new paint(); 
 mlinepaint.setcolor(color.parsecolor("#838b8b")); 
 mlinepaint.setstrokewidth(4); 
 
 mpasswordpaint = new paint(); 
 mpasswordpaint.setcolor(color.black); 
 mpasswordpaint.setstrokewidth(12); 
 } 
 
 @override 
 protected void ondraw(canvas canvas) { 
 super.ondraw(canvas); 
 
 mwidth = getmeasuredwidth(); 
 mheight = getmeasuredheight(); 
 
 drawroundrect(canvas); 
 drawline(canvas); 
 drawpassword(canvas); 
 } 
 
 /** 
 * 绘制圆角矩形背景 
 * @param canvas 
 */ 
 @targetapi(build.version_codes.lollipop) 
 private void drawroundrect(canvas canvas) { 
 canvas.drawroundrect(0, 0, mwidth, mheight, 12, 12, mborderpaint); 
 
 } 
 
 /** 
 * 绘制分割线 
 * @param canvas 
 */ 
 private void drawline(canvas canvas) { 
 for (int i = 1; i < password_length; i++) { 
  float x = mwidth * i / password_length; 
  canvas.drawline(x, 12, x, mheight - 12, mlinepaint); 
 } 
 } 
 
 /** 
 * 绘制密码 
 * @param canvas 
 */ 
 private void drawpassword(canvas canvas) { 
 float cx, cy = mheight / 2; 
 float half = mwidth / password_length / 2; 
 for (int i = 0; i < mpasswordtextlength; i++) { 
  cx = mwidth * i / password_length + half; 
  canvas.drawcircle(cx, cy, password_radius, mpasswordpaint); 
 } 
 } 
 
 @override 
 protected void ontextchanged(charsequence text, int start, int lengthbefore, int lengthafter) { 
 super.ontextchanged(text, start, lengthbefore, lengthafter); 
 
 mpasswordtextlength = text.tostring().length(); 
 
 if (mpasswordtextlength == password_length) { 
  toast.maketext(getcontext(), "您设置的密码为: " + text, toast.length_short).show();; 
 } 
 
 invalidate(); 
 } 
 
 
 public void reset(){ 
 settext(""); 
 invalidate(); 
 } 
}

  效果图如下:

更多内容请参考专题:android密码使用教程

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网