已经不做开发工作了,可舍不得放弃编程,还是喜欢那种编程运行出来的感觉。这次来个安卓的自定义view——仿支付宝输入控件,网上的没动画效果,我加了输入删除的动画效果:
![](https://img.haomeiwen.com/i2827257/e18d54fcd237a0d8.gif)
控件是继承 Editext(貌似这个最好实现了),外框和线是在 ondraw绘制的
先初始化画笔、黑点半径、动画。
![](https://img.haomeiwen.com/i2827257/ab8eb3dbcaad36a1.png)
画边框的代码:画个圆角矩形 以及 竖线分隔
![](https://img.haomeiwen.com/i2827257/b6f3788d310d3599.png)
重点来啦,我们要画圆点了,首先 要判断下当前是什么操作吧,输入?删除?
定义个变量:private boolean isAddText;
在change函数里判断当前状态,根据 当前字数与上次的字数进行比较:
![](https://img.haomeiwen.com/i2827257/2151c64c69940f31.png)
我们定义个动画 :
![](https://img.haomeiwen.com/i2827257/80904c30d9e0b765.png)
interpllatorTime 为0到1的估值,用它乘上 黑点半径 就可以实现动画效果啦。
绘制黑点的核心代码:
![](https://img.haomeiwen.com/i2827257/efb2dc09b0fd8464.png)
在textchange 函数里 执行动画:
![](https://img.haomeiwen.com/i2827257/ec91c264e6e6f40b.png)
这样就OK了,自定义键盘和回掉接口对大家很容易的, 我就不贴啦。
这个控件不算太难,主要在于 添加和删除时的逻辑判断,挺废脑子的。
网友评论