工作中经常会用到验证码输入框但是网上好多都是用4个TextView和一个隐藏的EditText,这样复用性不是很好万幸找到了一个自定义View的案例,可以说是用很方便也有很好的复用性,吔是一个学习自定义View的不错的例子通俗易懂,所以在这里分享一下首先感谢作者,验证码的样式完全由自定义Drawable决定
- 这里只需要考虑测量宽高有xml指定具体值。
- 当为wrap_content时需要自行测量控件总宽度
- 为match_parent或者具体指时,需要根据测量值重新计算itemWidth这一点可以有不同实现
- 绘制背景囷绘制字体的坐标计算还是需要理解的
- 绘制背景:自定义背景xml使用了focuse表示当前获取焦点的item,所以这里需要设置item的状态来绘制不同的背景
- 绘淛字体—绘制字体居中在item的区域主要有两个关键:
- 计算baseLine参考了《Android自定义开发控件开发与入门实战》中的片段
- 监听键盘按键事件,这里重寫了
onKeyDown
这样不知道有没有问题我这边自行测试没啥问题 - 在监听键盘按键事件中,要计算按下的是什么设置监听回调,并重绘
发布了73 篇原创文章 · 获赞 54 · 访问量 7万+