Android-EditText实现小眼睛按钮显示密码
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.点击眼睛按钮,把不可见的密码框类型改成可见的文本框就可看见里面的密 ...
- Android/安卓 点击按钮显示密码
在做app的时候,我们经常会做一个登陆界面,登陆时需要输入账号密码,并且输入时要求密码不可见,但是我们观察会发现大部分app都会提供一个按钮,点击查看输入的密码是否正确,那么怎么实现呢? 效果视频 点 ...
- JS实现密码框小眼睛的显示与隐藏(使用字体图标)
JS实现密码框小眼睛的显示与隐藏(使用字体图标) 前端学习路上的小练习,如若不喜,请勿喷. 眼睛使用的是 iconfont 阿里矢量图标库的内容 链接:https://www.iconfont.cn/ ...
- 解决 Android 分享到小程序 封面显示不全
参考:解决Android 微信分享小程序图片显示不全_Keung丶的博客-CSDN博客_小程序分享图片显示不全 上面分享的封面还是不满足需求,我们需求是填充满高度或者宽度,在原基础上做修改: 修改后: ...
- android密码小眼睛,android 实现点击edittext的“小眼睛”切换明密文
很多时候,我们为了用户的隐私安全,需要在密码输入的时候,显示密文.为了更好的用户体验,我们给用户提供了可以切换明密文的小图标(小眼睛) 先来看一下效果图: 这里我们可以有两种实现方式: 一. 布局文件 ...
- Android点击按钮显示密码,Android 开发仿简书登录框可删除内容或显示密码框的内容...
简书App 是我很喜欢的一款软件.今天就模仿了一下他的登录框.先上图: 好了下面上代码,自定义ImgEditText 继承与EditText.重写一些方法. package lyf.myimgedit ...
- android动态显示键盘,动态修改EditText输入键盘并隐藏或显示密码
做登录或转账系统的人会碰到需要输入密码的情况,而且可能会要求有时明文显示,有时密文显示.如何通过代码来控制呢? 下面的xml定义了一个输入框EditText,默认是系统键盘: android:id=& ...
- Vue小眼睛点击密码显示隐藏
<div class="R-ps"><input:type="pwdType"placeholder="密码"@on-ch ...
- 输入框怎么才会长“眼睛”?——显示密码与隐藏密码
会长"眼睛"的input输入框: 注:本文所需图片或者文件都在文章末尾处 我们在登入账户,进入登入页面中.在密码框,我们会遇到旁边有一个像眼睛的图标.只要点击了它,密码会显示会隐藏 ...
最新文章
- sqlalchemy数据库中的offset偏移查询的使用
- 形态学滤波:腐蚀与膨胀(浅谈)
- spring 数组中随机取几个_游戏编程中需要掌握哪些数学物理知识
- javalibrary 线上_线上的少儿口才培训班-1V1精品课程【演讲与口才吧】
- android入门知识,android基础知识学习笔记
- 多线程编程注意点(持续更新)
- 第三篇:Spring Boot整合Servlet
- C++ 各类树的算法
- python有趣的函数_Python中有趣在__call__函数
- 写了Bug,误执行 rm -fr /*,我删删删删库了,要跑路吗?| 原力计划
- python activiti bpmn_Activiti 用户指南(BPMN 2.0介绍)
- 调试信息清除小工具的编写
- xml规范及xml解析
- centos 6.4 安装java_CentOS6.4 64位系统安装jdk 转载
- 有关PyCharm的破解安装
- word图片与文字居中对齐
- anaconda conda环境管理命令
- Base64 密码加密解密
- iOS 导航栏下拉菜单框
- python顺时针旋转_python中的绕点旋转(矩阵)