Android-EditText实现小眼睛按钮显示密码

1、密码框如何实现

在进行安卓开发时,需要获取用户输入内容我们通常需要使用EditText组件获取用户输入。在获取密码等敏感信息时就要对输入内容进行隐藏处理。实现这一需求,将EditText的inputType属性设置为textPassword模式即可。

xml布局时

 android:inputType="textPassword"

java代码布局

this.EditText.setInputType(InputType.TYPE_CLASS_TEXT |InputType.TYPE_TEXT_VARIATION_PASSWORD);

以上将EditText文本框设置为隐藏模式

2、添加小眼睛按钮

小眼睛类似的图标,是一个image。我们可以在将一个imageview布局到对应位置,然后添加其点击事件实现,缺点是大小和其他布局不好确定,适配相对麻烦。

另外一种方式我们可以通过TextView和EditText组件可以设置的4个方向的drawable实现。

xml布局时添加drawable

android:drawableRight="@drawable/password_eye_icon_idle"

以上是通过xml布局的方式设置了右边的drawable,其他三个方向以此类推。此方式方便的设置了drawable,缺点是无法在xml中调整drawable大小,可在代码中调整。

//this.EditText伪代码表示方法,指EditText对象
Drawable rightDrawable=this.EditText.getCompoundDrawables()[2];//获取drawable对象,
//下标0~3依次对应left、top、right、bottom方向的drawablerightDrawable.setBounds(-10,0,50,70);//设置drawable大小

java代码添加drawable

//通过资源拿到对应drawable对象Drawable drawable = getResources().getDrawable(R.drawable.password_eye_icon_idle);//设置drawable大小drawable.setBounds(-10, 0, 35, 30);//将drawable设为EditText的drawable,4个参数分别是left、top、right、bottom//这里设置了right位置的drawablethis.EditText.setCompoundDrawables(null, null, drawable, null);//这样便成功添加了drawable并调整大小,需要取消对应位置的drawable只需要再设置null即可this.EditText.setCompoundDrawables(null, null, null, null);

通过上面两种方法即可添加需要的drawable

3、小眼睛点击事件

第二点介绍了如何添加EditText的drawable,该组件并没有实现好的drawable点击事件,接下来介绍如何给drawable添加点击事件。

通过重写EditText.onTouchEvent方法添加drawable的点击事件。
继承EditText并重写EditText.onTouchEvent方法。

private RightListener rightListener;//通过set方法传入@Overridepublic boolean onTouchEvent(MotionEvent event) {//EditText按下事件判断if (event.getAction() == MotionEvent.ACTION_DOWN) {//拿到对应方向的drawableDrawable rightDrawable = getCompoundDrawables()[2];//判断手指按下的位置是否在drawable上if (rightDrawable != null && event.getRawX() >= (getRight() - rightDrawable.getBounds().width())) {//执行事件具体处理事务,通过回调的方式传入rightListener.OnDrawbleRightClick(this);//返回true表示该事件以处理  return true;}}return super.onTouchEvent(event);}

具体点击事件实现

this.EditText.setRightListener(new RightListener() {@Overridepublic void OnDrawbleRightClick(View view) {Drawable drawable =null;if (!flog){drawable= getResources().getDrawable(R.drawable.password_eye_icon_selected);//将密码框设置成明文模式      ((EditText)view).setTransformationMethod(HideReturnsTransformationMethod.getInstance());flog=!flog;}else {drawable= getResources().getDrawable(R.drawable.password_eye_icon_idle);//将密码框设置成隐藏模式 ((EditText)view).setTransformationMethod(PasswordTransformationMethod.getInstance());flog=!flog;}drawable.setBounds(-10, 0, 35, 30);((EditText)view).setCompoundDrawables(null, null, drawable, null);}});

4、如何设置EditText显示或隐藏密码

在EditText为 android:inputType="textPassword"模式下

//密码框显示密码
this.EditText.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
//密码框隐藏密码
this.EditText.setTransformationMethod(PasswordTransformationMethod.getInstance());

Android-EditText实现小眼睛按钮显示密码相关推荐

  1. 点击密码框显示密码(点击密码框小眼睛可显示输入密码)

    案例分析` 登录注册页面中,当我们输入密码时,密码显示的是不可见的,是属于密码框类型,点击小眼睛之后显示密码. **核心思路:**1.点击眼睛按钮,把不可见的密码框类型改成可见的文本框就可看见里面的密 ...

  2. Android/安卓 点击按钮显示密码

    在做app的时候,我们经常会做一个登陆界面,登陆时需要输入账号密码,并且输入时要求密码不可见,但是我们观察会发现大部分app都会提供一个按钮,点击查看输入的密码是否正确,那么怎么实现呢? 效果视频 点 ...

  3. JS实现密码框小眼睛的显示与隐藏(使用字体图标)

    JS实现密码框小眼睛的显示与隐藏(使用字体图标) 前端学习路上的小练习,如若不喜,请勿喷. 眼睛使用的是 iconfont 阿里矢量图标库的内容 链接:https://www.iconfont.cn/ ...

  4. 解决 Android 分享到小程序 封面显示不全

    参考:解决Android 微信分享小程序图片显示不全_Keung丶的博客-CSDN博客_小程序分享图片显示不全 上面分享的封面还是不满足需求,我们需求是填充满高度或者宽度,在原基础上做修改: 修改后: ...

  5. android密码小眼睛,android 实现点击edittext的“小眼睛”切换明密文

    很多时候,我们为了用户的隐私安全,需要在密码输入的时候,显示密文.为了更好的用户体验,我们给用户提供了可以切换明密文的小图标(小眼睛) 先来看一下效果图: 这里我们可以有两种实现方式: 一. 布局文件 ...

  6. Android点击按钮显示密码,Android 开发仿简书登录框可删除内容或显示密码框的内容...

    简书App 是我很喜欢的一款软件.今天就模仿了一下他的登录框.先上图: 好了下面上代码,自定义ImgEditText 继承与EditText.重写一些方法. package lyf.myimgedit ...

  7. android动态显示键盘,动态修改EditText输入键盘并隐藏或显示密码

    做登录或转账系统的人会碰到需要输入密码的情况,而且可能会要求有时明文显示,有时密文显示.如何通过代码来控制呢? 下面的xml定义了一个输入框EditText,默认是系统键盘: android:id=& ...

  8. Vue小眼睛点击密码显示隐藏

    <div class="R-ps"><input:type="pwdType"placeholder="密码"@on-ch ...

  9. 输入框怎么才会长“眼睛”?——显示密码与隐藏密码

    会长"眼睛"的input输入框: 注:本文所需图片或者文件都在文章末尾处 我们在登入账户,进入登入页面中.在密码框,我们会遇到旁边有一个像眼睛的图标.只要点击了它,密码会显示会隐藏 ...

最新文章

  1. html怎么设置取当前日期格式,js获取当前日期,格式为YYYY-MM-DD
  2. GIT常用基础命令总结
  3. Hierarchical Attention Networks for Document Classification 阅读笔记
  4. java list 转 map_高并发下的Java数据结构(List、Set、Map、Queue)
  5. 使用 Chrome Dev tools 分析应用的内存泄漏问题
  6. linux 无线网卡休眠,无线网卡在Linux下活起来
  7. caffe prototxt 可视化工具
  8. 【Java】判断学生成绩等级
  9. 集合php,php function集合
  10. linux 创建进程 execl,linux中进程的vfork()和execl()函数
  11. 搜索推荐广告中的Position Bias:美团DPIN
  12. position_css
  13. python微信群定时发送消息_Python3 itchat实现微信定时发送群消息的实例代码
  14. 打开visio后屏幕会不停的抖动是怎么回事
  15. 常见图片格式总结--网页设计必备
  16. 瑟瑟发抖小网工之ISIS协议
  17. 浅谈临床研究中随机化
  18. DeleteRow()
  19. XCel 项目总结 - Electron 与 Vue 的性能优化
  20. 数据采集系统有哪几种采集方式?

热门文章

  1. Linux 程序开发 之 库打桩机制
  2. 对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值。对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推。这个整数在第n位上的数字记作x,如果x和n的奇偶性相同,则记下一
  3. 【Scikit-Learn 中文文档】概率校准 - 监督学习 - 用户指南 | ApacheCN
  4. tp框架里怎么写ajax,TP中的ajax请求
  5. 完整的模糊推理系统介绍以及matlab中从零实现(上篇)
  6. matlab深度学习——【卷积神经网络】手写字的识别
  7. python不支持的数据类型是什么
  8. Linux SQLPLUS
  9. 微信摇一摇插件ios_解决ios无法触发摇一摇兼容,Cordova实现模仿微信摇一摇
  10. Nuxt.js 服务端渲染从安装到部署