Android仿支付宝密码输入效果封装
程序员文章站
2022-07-01 16:26:26
模仿支付宝输入效果,实现很简单,就是画个矩形框和圆形,其他的通过组合view来实现所有功能,虽然简单但是封装起来,方便以后使用,也分享一下,希望对别人也有点帮助。
1...
模仿支付宝输入效果,实现很简单,就是画个矩形框和圆形,其他的通过组合view来实现所有功能,虽然简单但是封装起来,方便以后使用,也分享一下,希望对别人也有点帮助。
1、如何使用,可以设置自己的进入退出动画,不设置则没有动画效果,自己觉得封装之后还是非常用好的。
private myinputpwdutil myinputpwdutil; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); myinputpwdutil = new myinputpwdutil(this); myinputpwdutil.getmyinputdialogbuilder().setanimstyle(r.style.dialog_anim); //可以定制自己进入退出动画,不设置没有动画 myinputpwdutil.setlistener(new inputpwdview.inputpwdlistener() { @override public void hide() { myinputpwdutil.hide(); } @override public void forgetpwd() { toast.maketext(mainactivity.this, "忘记密码", toast.length_short).show(); } @override public void finishpwd(string pwd) { toast.maketext(mainactivity.this, pwd, toast.length_short).show(); } }); } public void show(view view){ myinputpwdutil.show(); }
2、输入框实现主要代码,就是绘制矩形和中间的圆形而已。
int height = getheight(); int width = getwidth(); //画边框 rectf rect = new rectf(0, 0, width, height); borderpaint.setcolor(bordercolor); canvas.drawroundrect(rect, borderradius, borderradius, borderpaint); //画内容区域 rectf rectcontent = new rectf(rect.left + defaultcontentmargin, rect.top + defaultcontentmargin, rect.right - defaultcontentmargin, rect.bottom - defaultcontentmargin); borderpaint.setcolor(getresources().getcolor(r.color.myinputpwdbase_gray)); canvas.drawroundrect(rectcontent, borderradius, borderradius, borderpaint); //画分割线:分割线数量比密码数少1 borderpaint.setcolor(bordercolor); borderpaint.setstrokewidth(defaultsplitlinewidth); for (int i = 1; i < passwordlength; i++) { float x = width * i / passwordlength; canvas.drawline(x, 0, x, height, borderpaint); } //画密码内容 float px, py = height / 2; float halfwidth = width / passwordlength / 2; for (int i = 0; i < textlength; i++) { px = width * i / passwordlength + halfwidth; canvas.drawcircle(px, py, passwordwidth, passwordpaint); }
3、作为library的module,在定义使用到的属性的时候最好特别能区分开,设置特定的开头,这样能避免引入自己的工程之后导致冲突。
如有bug,谢谢指出。
源码下载
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: iPhone中国用户大逃离:转投华为
下一篇: 苹果要花10亿美元:收购英特尔基带业务