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. sqlalchemy数据库中的offset偏移查询的使用
  2. 形态学滤波:腐蚀与膨胀(浅谈)
  3. spring 数组中随机取几个_游戏编程中需要掌握哪些数学物理知识
  4. javalibrary 线上_线上的少儿口才培训班-1V1精品课程【演讲与口才吧】
  5. android入门知识,android基础知识学习笔记
  6. 多线程编程注意点(持续更新)
  7. 第三篇:Spring Boot整合Servlet
  8. C++ 各类树的算法
  9. python有趣的函数_Python中有趣在__call__函数
  10. 写了Bug,误执行 rm -fr /*,我删删删删库了,要跑路吗?| 原力计划
  11. python activiti bpmn_Activiti 用户指南(BPMN 2.0介绍)
  12. 调试信息清除小工具的编写
  13. xml规范及xml解析
  14. centos 6.4 安装java_CentOS6.4 64位系统安装jdk 转载
  15. 有关PyCharm的破解安装
  16. word图片与文字居中对齐
  17. anaconda conda环境管理命令
  18. Base64 密码加密解密
  19. iOS 导航栏下拉菜单框
  20. python顺时针旋转_python中的绕点旋转(矩阵)

热门文章

  1. JS的异步和同步函数
  2. nmtui 和 nmcli 命令 配置网络
  3. 评价指标之准确率、精确率、召回率、F1值
  4. 【 Android11 WiFi开发 二 】WiFi连接、断开
  5. 函数cvRound,cvFloor,cvCeil用法
  6. 大数据迷潮下的教育研究及其想象力
  7. XMind 8破解激活
  8. currentColor
  9. “华尔街之狼”:ICO是“史上最大骗局”
  10. 我目前在工作中常用的git指令