仿微信支付宝输入支付密码
来源:互联网 发布:网络商店系统 编辑:程序博客网 时间:2024/05/01 05:37
直接上图,
完整代码:
package com.example.administrator.stablayout;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.text.InputFilter;import android.text.TextPaint;import android.util.AttributeSet;import android.widget.EditText;/** * Created by Administrator on 2017/4/22 0022. */public class WXInputPassword extends EditText { private CharSequence text = ""; private Paint paint; // 边框线的宽度 private int strikeWidth = 2; // 密码个数 private int count = 6; // 密码框正方形边长 private int size = 100; // 实现密码半径 private int cirRadiu = 20; // 是否显示密码 private boolean showText = false; // 密码数字的大小 private int textSize = 70; private TextPaint textPaint = new TextPaint(); private OnInputComplete onInputComplete; private float textBaseY; // 设置输入完成监听 public void setOnInputComplete(OnInputComplete onInputComplete) { this.onInputComplete = onInputComplete; } public WXInputPassword(Context context) { super(context); } public WXInputPassword(Context context, AttributeSet attrs) { super(context, attrs); init(); } private void init() { setBackground(null); setPadding(0, 0, 0, 0); setFilters(new InputFilter[]{new InputFilter.LengthFilter(count)}); paint = new Paint(); paint.setAntiAlias(true); paint.setDither(true); paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(strikeWidth); paint.setColor(Color.BLACK); textPaint.setAntiAlias(true); textPaint.setColor(Color.BLACK); textPaint.setTextAlign(Paint.Align.CENTER); textPaint.setTextSize(textSize); Paint.FontMetrics fontMetrics = textPaint.getFontMetrics(); float fontHeight = fontMetrics.bottom - fontMetrics.top; textBaseY = size - (size - fontHeight) / 2 - fontMetrics.bottom; } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { setMeasuredDimension(size * count, size); } @Override protected void onDraw(Canvas canvas) { paint.setStyle(Paint.Style.STROKE); canvas.drawRect(strikeWidth / 2, strikeWidth / 2, size * 6 - strikeWidth / 2, size - strikeWidth / 2, paint); for (int i = 1; i < count; i++) { canvas.drawLine(size * i, 1, size * i, size - 1, paint); } paint.setStyle(Paint.Style.FILL); for (int i = 0; i < text.length(); i++) { if (showText) { canvas.drawText(text.subSequence(i, i + 1).toString(), size / 2 + size * i, textBaseY, textPaint); } else { canvas.drawCircle(size / 2 + i * size, size / 2, cirRadiu, paint); } } } @Override protected void onTextChanged(CharSequence text, int start, int lengthBefore, int lengthAfter) { super.onTextChanged(text, start, lengthBefore, lengthAfter); this.text = text; if (text.length() >= count) { if (onInputComplete != null) { onInputComplete.onComplete(this.text.toString()); } } } //显示密码public void setShowText(boolean showText) { this.showText = showText; invalidate(); }// 密码输入完成后回调 public interface OnInputComplete { void onComplete(String sequence); }}
代码中有注释 ,更改适合自己项目的值 ,
0 0
- 仿微信支付宝输入支付密码
- 自定义密码输入框(仿微信支付宝支付)
- 仿支付宝支付密码输入框
- Android 支付宝支付密码输入界面
- 仿支付宝支付 密码输入
- 仿微信支付宝支付密码
- 仿微信支付宝输入密码框
- 仿微信支付密码输入框
- 支付密码输入
- 仿微信/支付宝支付密码界面htm
- GridPasswordView 类似支付宝支付密码输入框
- 微信支付宝支付密码输入框 PassWordEditView
- 类似支付宝或微信支付输入密码
- 仿支付宝支付密码输入框功能
- 仿支付宝输入支付密码2(带动画)
- Android仿支付宝支付密码输入框
- Android仿支付宝支付密码输入框
- Android 仿支付宝支付密码输入框
- 【数据结构】树(四):B树(C++实现)
- Java开发中的23种设计模式详解
- 58大数据平台架构
- 工作流调度器azkaban
- HihoCoder
- 仿微信支付宝输入支付密码
- phpssdbadmin
- linux服务器能看到首页,其他页面404解决
- pycharm修改解释器
- CentOS 常用的文件操作 命令总结
- 运算放大器类型大全
- python调用c语言动态库示例
- java基础总结10-面向对象6(方法的重载)
- MySQL的sql_mode解析与设置