实现一个仿支付宝支付密码的输入框,主要实现如下:

PasswordView.java

package com.jackie.alipay.password;import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Build;
import android.util.AttributeSet;
import android.widget.EditText;
import android.widget.Toast;/*** Created by Administrator on 2016/10/31.*/public class PasswordView extends EditText {private Paint mBorderPaint;     //外框画笔private Paint mLinePaint;       //线的画笔private Paint mPasswordPaint;   //密码画笔private int mPasswordTextLength;  //输入密码的长度private int mWidth;private int mHeight;private static final int PASSWORD_LENGTH = 6;//密码的长度private static final int PASSWORD_RADIUS = 15;public PasswordView(Context context) {this(context, null);}public PasswordView(Context context, AttributeSet attrs) {this(context, attrs, 0);}public PasswordView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);initView();}private void initView() {setFocusable(true);mBorderPaint = new Paint();mBorderPaint.setStrokeWidth(8);mBorderPaint.setColor(Color.WHITE);mBorderPaint.setStyle(Paint.Style.FILL);mLinePaint = new Paint();mLinePaint.setColor(Color.parseColor("#838B8B"));mLinePaint.setStrokeWidth(4);mPasswordPaint = new Paint();mPasswordPaint.setColor(Color.BLACK);mPasswordPaint.setStrokeWidth(12);}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);mWidth = getMeasuredWidth();mHeight = getMeasuredHeight();drawRoundRect(canvas);drawLine(canvas);drawPassword(canvas);}/*** 绘制圆角矩形背景* @param canvas*/@TargetApi(Build.VERSION_CODES.LOLLIPOP)private void drawRoundRect(Canvas canvas) {canvas.drawRoundRect(0, 0, mWidth, mHeight, 12, 12, mBorderPaint);}/*** 绘制分割线* @param canvas*/private void drawLine(Canvas canvas) {for (int i = 1; i < PASSWORD_LENGTH; i++) {float x = mWidth * i / PASSWORD_LENGTH;canvas.drawLine(x, 12, x, mHeight - 12, mLinePaint);}}/*** 绘制密码* @param canvas*/private void drawPassword(Canvas canvas) {float cx, cy = mHeight / 2;float half = mWidth / PASSWORD_LENGTH / 2;for (int i = 0; i < mPasswordTextLength; i++) {cx = mWidth * i / PASSWORD_LENGTH + half;canvas.drawCircle(cx, cy, PASSWORD_RADIUS, mPasswordPaint);}}@Overrideprotected void onTextChanged(CharSequence text, int start, int lengthBefore, int lengthAfter) {super.onTextChanged(text, start, lengthBefore, lengthAfter);mPasswordTextLength = text.toString().length();if (mPasswordTextLength == PASSWORD_LENGTH) {Toast.makeText(getContext(), "您设置的密码为: " + text, Toast.LENGTH_SHORT).show();;}invalidate();}public void reset(){setText("");invalidate();}
}

效果图如下:

Android仿支付宝支付密码输入框相关推荐

  1. android绑定支付宝支付宝支付宝支付密码错误,Android 仿支付宝支付密码输入框

    看到网友:http://www.jointforce.com/jfperiodical/article/3527?ref=myread 做的仿支付宝支付密码输入框,感觉挺适合初学自定义view的同仁练 ...

  2. Android 仿支付宝支付密码输入框的具体实现

    Android仿支付宝支付密码框 前言 1. 设计思路 2. 项目地址和implementation使用方法 3. 涉及到的内容 4. 设计流程 4.1 Layout 4.2 GridView和Ada ...

  3. Android 仿支付宝支付密码输入框

    看到网友:http://www.jointforce.com/jfperiodical/article/3527?ref=myread 做的仿支付宝支付密码输入框,感觉挺适合初学自定义view的同仁练 ...

  4. 仿支付宝支付密码输入框

    仿支付宝支付密码输入框 前段时间看到小伙伴们在做一个密码输入框,刚好拿来复习下Quartz 2D,不废话,直接上图: 主要思路如下: - UITextField上面覆盖一个UIView - 设置UIV ...

  5. android 保险密码效果,本文实例为大家分享了android仿支付宝密码输入框展示的具体代码,供大家参考,具体内容如下这个没什么好分析的,就是一些基本的绘制什么线,矩形什么的,看代码更...

    本文实例为大家分享了android仿支付宝密码输入框展示的具体代码,供大家参考,具体内容如下 这个没什么好分析的,就是一些基本的绘制什么线,矩形什么的,看代码更具体 布局文件: android:lay ...

  6. android支付宝支付微信支付封装,Android仿支付宝微信支付密码界面弹窗封装dialog...

    一,功能效果 二,实现过程 1,先写xml文件:dialog_keyboard.xml 注意事项 (1),密码部分用的是一个线性布局中6个TextView,并设置android:inputType=& ...

  7. Android 仿支付宝蚂蚁森林动画效果

    Android 动画可以归纳为以下几种: 视图动画(View 动画) 帧动画(Frame 动画.Drawable 动画) 属性动画 触摸反馈动画(Ripple Effect) 揭露动画(Reveal ...

  8. html输入支付密码样式,基于JS实现类似支付宝支付密码输入框

    基于JS实现类似支付宝支付密码输入框 2019-01-06 编程之家 https://www.jb51.cc 编程之家收集整理的这篇文章主要介绍了基于JS实现类似支付宝支付密码输入框,编程之家小编觉得 ...

  9. 仿支付宝支付成功控件

    仿支付宝支付控件(PathMeasure的应用) 本节介绍的是支付宝支付成功的特效实例,废话不多说,先上图再说: 思路 1.首先对于该效果的实现,我考虑的通过动画的绘制过程,从而截取每一段动画,让控件 ...

  10. android 余额宝收益列表,Android 仿支付宝中的余额宝收益进度条

    一. 看效果 二.上代码 package com.framework.widget; import android.app.Activity; import android.content.Conte ...

最新文章

  1. 《树莓派Python编程指南》—— 1.3 树莓派快速指南
  2. tsql2008技术内幕:tsql语言基础(第3章)
  3. c语言的非法字符常量,判断C语言数值常量是否合法?为什么不合法?
  4. delphi编译缺少组件 imgedit excel2000等
  5. 博世应对汽车变革的“十八般兵器”
  6. 初级php工程师应该具备什么,一名合格的PHP工程师需要掌握的知识结构
  7. 程序员数学基础【七、等比数列 棋盘麦粒】
  8. SAP CRM One Order old design in index table
  9. android数字滚动动画,Android超简单实现金钱滚动效果
  10. Flutter ImageFilter 高斯模糊效果 BackdropFilter 实现过滤效果
  11. 财政 | 十一月财政总结
  12. html5与python哪个好_3个原因告诉你,为什么选择HTML5大前端?
  13. mysql 联表删除limit_sql连表删除 | 深蓝的blog
  14. 学习vue-router源码记录-1
  15. 表情识别(一)--传统方法概述
  16. jar包上传maven私服出错Cannot deploy artifact from the local repository
  17. 618秒杀抢不到?用Python完成毫秒级抢单,助你秒杀淘宝大单
  18. VMware14虚拟机秘钥
  19. matlab 电力系统分析 毕设,基于Labview的“电力系统分析”课程仿真:电力系统分析matlab仿真实例...
  20. IBM X3650M3存储raid阵列瘫痪的恢复过程

热门文章

  1. 电脑c盘垃圾文件太多怎么办?这几个文件夹可以放心删
  2. 福利:go语言开发的sock5代理服务器
  3. 【2022年终总结】将哈佛大学Reich数据包中的352例SGDP样本进行Admixture分析的结果
  4. 通过python scrapy shell 获取对应的网页元素值
  5. static this(尚学堂视频学习总结_002)
  6. 没有CUE的情况下APE刻录CD
  7. 计算机找不到wf连接,笔记本wifi功能消失了 电脑wifi连接没了 电脑的wifi不见了...
  8. 财务自由,整层楼沸腾!万亿蚂蚁IPO来了,诞生几千个亿万富翁?杭州、上海房价又要涨了…...
  9. 网页中图片显示不出来,解决网页中图片不能显示的方法
  10. linux底层播放器,[转载]媒体播放器三大底层架构:MPC、MPLAYER、VLC