仿支付宝/微信的password输入框效果GridPasswordView解析,把一些设置和一些关键的地方列了出来,方便大家使用,可能能够省一部分的时间,也算是自己的积累吧。
1.password框能够输入的类型PasswordType
public enum PasswordType { NUMBER, TEXT, TEXTVISIBLE, TEXTWEB;}这里能够自行加入类型,然后在GridPasswordView中改动
@Override public void setPasswordType(PasswordType passwordType) { boolean visible = getPassWordVisibility(); int inputType = InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD; switch (passwordType) { case TEXT: inputType = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD; break; case TEXTVISIBLE: inputType = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD; break; case TEXTWEB: inputType = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD; break; } for (TextView textView : viewArr) textView.setInputType(inputType); setPasswordVisibility(visible); }
2.PasswordView中的抽象方法的作用
interface PasswordView { //获取password String getPassWord(); //清空password void clearPassword(); //设置password void setPassword(String password); //设置password可见性 void setPasswordVisibility(boolean visible); //password可见性的切换 void togglePasswordVisibility(); //设置password改变监听 void setOnPasswordChangedListener(GridPasswordView.OnPasswordChangedListener listener); //设置password类型 void setPasswordType(PasswordType passwordType);}3.GridPasswordView中还有些方法没有去操作。有须要能够自己去写
setBackground(Drawable)setBackgroundColor(int)setBackgroundResource(int)setBackgroundDrawable(Drawable)这个类是View的主类。能够通过这个类去满足你的需求
4.在GridPasswordView中设置框框颜色和背景颜色(绿色和红色)
private static final int DEFAULT_LINECOLOR = 0xaa61cea8;private static final int DEFAULT_GRIDCOLOR = 0xffe66961;
5.设置文本的大小和颜色(40px和蓝色)
private static final int DEFAULT_TEXTSIZE = 40;textColor = ColorStateList.valueOf(getResources().getColor(android.R.color.holo_blue_light));6.在gridpasswordview_styles.xml中设置了样式,大家依据须要更改
7.在gridpasswordview_attr.xml设置属性值
8.效果图
源代码下载地址;