Android自定义密码输入框

Android自定义密码输入框

项目地址

项目需要用到密码框输入,并且使用自定义的键盘,但是密码框需要区分输入完成、待输入、未输入颜色百度一番没有结果就自己自定义一个了

自定义键盘 (我做的比较简单就不累赘了)

我这里使用的是简单的键盘 需要看源码点击这里

自定义输入框View

1.控件属性定义,自己根据需求罗列一下感觉需要的属性如下
属性名称 作用
textColor 文字颜色默认黑色
textSize 文文字尺寸默认 22
count 输入框个数默认6
width 输入框宽度默认40dp
height 输入框高度默认40dp
lineColor 默认状态的边框颜色 默认黑色
fillColor 默认状态的填充颜色 默认白色
lineWidth 默认状态的边框宽度 默认1dp
focusLColor 默认状态的边框颜色 默认黑色
focusFillColor 默认状态的填充颜色 默认白色
focusLineWidth 默认状态的边框宽度 默认1dp
employLColor 默认状态的边框颜色 默认黑色
employFillColor 默认状态的填充颜色 默认白色
employLineWidth 默认状态的边框宽度 默认1dp
isContinuous 输入框是否连续(方便以后其他需要就添加了)默认true 连续
borderRadius 文输入框边角半径 默认0dp
conceal 是否隐藏文字 默认false 不隐藏
replaceString 文字隐藏替换字符 默认没有
replaceDrawable 文字隐藏替换图片(优先级高于replaceString) 默认没有
circleRadius 默认替换图案半径(圆形) 默认为width的三分之一
circleColor 默认替换图案颜色 默认与textColor 一致
isContinuousRepeatChar 是否过滤连续重复的字符 默认false 不过滤
isContinuousChar 是否过滤连续的字符 默认false 不过滤
isInvokingKeyboard 是否使用系统键盘 默认为true 如果为false的换需要自己手动调起键盘

根据自己的需求并考虑到我们后期的扩展性定义了如上属性,属性定义这个也比较简单就不过多的描述:

2.初始化
首先我们要获取属性

通过:TypedArray typedArray =
context.obtainStyledAttributes(attrs, R.styleable.BorderPWEditText);获取到typedArray 对象,使用typedArray对象我们将会获取到用户设置的属性并可以指定属性默认值

初始化画笔

private void initPaint() {
//文字画笔
paintText = new Paint(Paint.ANTI_ALIAS_FLAG);
paintText.setTextAlign(Paint.Align.CENTER);
paintText.setAntiAlias(true);
paintText.setTextSize(mTextSize);
paintText.setColor(mTextColor);

    //边框画笔
    borderPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
    borderPaint.setStrokeWidth(mLineWidth);
    borderPaint.setColor(mLineColor);
    borderPaint.setAntiAlias(true);
    borderPaint.setStyle(Paint.Style.STROKE);

    //填充画笔
    fillPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
    fillPaint.setColor(mFillColor);
    fillPaint.setAntiAlias(true);
    fillPaint.setStyle(Paint.Style.FILL);

}

目前定义了三只画笔,可能有人说你不是有默认边框填充,待输入边框填充,未输入边框填充类型吗?但是我们梳理一下你你会发现 默认、待输入、未输入情况下画笔的颜色和宽度不同,起始就只有填充和边框画笔类型所以我们就

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值