Android 仿支付宝密码输入框效果

时间:2021-05-21

模仿支付宝输入效果,实现很简单,就是画个矩形框和圆形,其他的通过组合view来实现所有功能,虽然简单但是封装起来,方便以后使用,也分享一下,希望对别人也有点帮助。

1、如何使用,可以设置自己的进入退出动画,不设置则没有动画效果,自己觉得封装之后还是非常用好的。

private MyInputPwdUtil myInputPwdUtil;@Overrideprotected 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() {@Overridepublic void hide() {myInputPwdUtil.hide();}@Overridepublic void forgetPwd() {Toast.makeText(MainActivity.this, "忘记密码", Toast.LENGTH_SHORT).show();}@Overridepublic 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);//画分割线:分割线数量比密码数少1borderPaint.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,在定义使用到的属性的时候最好特别能区分开,设置特定的开头,这样能避免引入自己的工程之后导致冲突。

以上所述是小编给大家介绍的Android 仿支付宝密码输入框效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章