首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在android中使用可绘制的图标显示和隐藏密码

在Android中使用可绘制的图标显示和隐藏密码,可以通过以下步骤实现:

  1. 首先,在布局文件中添加一个EditText控件用于输入密码,并在其右侧添加一个ImageView控件用于切换密码可见性。示例代码如下:
代码语言:xml
复制
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <EditText
        android:id="@+id/passwordEditText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textPassword" />

    <ImageView
        android:id="@+id/showHidePasswordImageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/passwordEditText"
        android:layout_alignEnd="@id/passwordEditText"
        android:padding="8dp"
        android:src="@drawable/ic_password_hide" />

</RelativeLayout>
  1. 接下来,在Activity或Fragment中获取EditText和ImageView的实例,并设置点击事件监听器。示例代码如下:
代码语言:java
复制
EditText passwordEditText = findViewById(R.id.passwordEditText);
ImageView showHidePasswordImageView = findViewById(R.id.showHidePasswordImageView);

showHidePasswordImageView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (passwordEditText.getInputType() == InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD) {
            passwordEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
            showHidePasswordImageView.setImageResource(R.drawable.ic_password_hide);
        } else {
            passwordEditText.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
            showHidePasswordImageView.setImageResource(R.drawable.ic_password_show);
        }
        passwordEditText.setSelection(passwordEditText.getText().length()); // 保持光标在末尾
    }
});
  1. 最后,为了显示和隐藏密码图标,需要准备两个可绘制的图标资源文件。在res/drawable目录下创建ic_password_hide.xml和ic_password_show.xml文件,并分别定义隐藏和显示密码的图标。示例代码如下:

ic_password_hide.xml:

代码语言:xml
复制
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ic_password_hide_enabled" android:state_enabled="true" />
    <item android:drawable="@drawable/ic_password_hide_disabled" android:state_enabled="false" />
</selector>

ic_password_show.xml:

代码语言:xml
复制
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ic_password_show_enabled" android:state_enabled="true" />
    <item android:drawable="@drawable/ic_password_show_disabled" android:state_enabled="false" />
</selector>

以上代码中,分别使用了ic_password_hide_enabled、ic_password_hide_disabled、ic_password_show_enabled和ic_password_show_disabled作为图标资源文件,你可以根据自己的需求替换这些资源文件。

这样,当用户点击密码输入框右侧的图标时,密码的可见性将会切换,并且图标也会相应地改变。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android开发软键盘显示隐藏

而很多关键逻辑代码,都是 InputMethodManagerService 实现。 特别说明:本文所有分析源码,都是基于 Android 26 源码。...可以看到 1、2 都是有特殊含义,实际上它们并不影响显示,只是隐藏时候,会有一些限制,这些后面看源码时候再说,一般没有特别需要的话,我们直接传递 0 就好了。...2.4 切换键盘弹出隐藏 InputMethodManager ,还提供了一个 toggleSoftInput() 方法,如同它名字一样,它可以让软键盘在显示隐藏之间切换。 ?...这就导致很多时候,我们代码,无法直接根据 InputMethodManager 提供方法判断当前软键盘显示状态,这样也就无法确定调用它时候效果了。...这里会根据显示隐藏传递两个 flag 来进行比对,也就是说,如果 flag 使用不正确,可能导致这里直接返回 false ,从而无法隐藏软键盘,这些细节对照代码就清晰了,就不在文章里屡这些细节了。

2.4K10

UI设计师必须知道 iOSAndroidAPP图标设计指南

尽管图标非常小,但图标会在App StoreGoogle Play显示,向用户传达app信息,并且安装后能在主屏幕上找到它,因此图标非常重要。...比如,设置应用程序图标多小啊! ? iOSAndroid设置应用程序图标 用户不需要试图理解设计师想法。设计师确保多种尺寸实际设备上试用图标,并在必要时最终确定。...例如每个交互模板不仅会导出各种大小图标,还会显示它在主屏幕App Store外观。它没有看起来那么难。接下来是Android应用程序图标!...Android应用程序 图标材料设计规范,Google将有关Android应用程序图标的信息分为两部分:关于样式技术要求。...绘制Android应用程序图标 Android,应用程序图标也以各种尺寸使用,最大与iOS相同:1024px×1024px。添加网格,注意安全区域。

2K20

Android 12 SplashScreen API快速入门

由此我们就可以大致得出一些结论,比如说onCreate()onResume()方法都是App开始绘制第一帧之前执行,而Viewpost回调则是App绘制第一帧之后执行。...当然,也有另一种说法是,他们SplashScreen上显示并不是一个静态图标,而是一个动画,所以至少要等到动画结束之后再隐藏SplashScreen。...如果对此还不够了解的话,可以去参考我之前写一篇文章 Android 8.0系统应用图标适配 。...上述例子使用是一张不透明图片来作为图标,其实我们也可以提供一张有透明度图片,然后再借助如下属性来控制图标的背景色: <item name="<em>android</em>:windowSplashScreenIconBackgroundColor...然后我们可以<em>使用</em>windowSplashScreenBackground<em>和</em>windowSplashScreenAnimatedIcon这两个属性来分别指定SplashScreen<em>的</em>背景色<em>和</em>中央<em>图标</em>。

1.8K10

【CSS】文字溢出问题 ( 强制文本一行显示 | 隐藏文本超出部分 | 使用省略号代替文本超出部分 )

一、文字溢出问题 ---- 元素对象内部显示文字 , 如果文本过长 , 则会出现文本溢出问题 ; 下面的示例 , 150x25 像素盒子 , 显示 骐骥一跃,不能十步;驽马十驾,功不舍;...; 显示效果 : 二、文字溢出处理方案 ---- 文字溢出处理方案 : 首先 , 强制文本一行显示 ; white-space: nowrap...; 然后 , 隐藏文本超出部分 ; overflow: hidden; 最后 , 使用省略号代替文本超出部分 ; text-overflow: ellipsis; white-space 样式 用于设置...文本显示方式 : 默认方式 : 显示多行 ; white-space: normal; 显示一行 : 强行将盒子文本显示一行 ; white-space: nowrap; text-overflow...*/ white-space: nowrap; /* 然后 隐藏文本超出部分 */ overflow: hidden; /* 最后 使用省略号代替文本超出部分 */ text-overflow

3.9K10

Android自定义控件EditText实现清除抖动功能

本文实例为大家分享了Android EditText实现清除抖动功能具体代码,供大家参考,具体内容如下 源码如下: public class ClearEditText extends EditText...(this); } / * 因为我们不能直接给EditText设置点击事件,所以我们用记住我们按下位置来模拟点击事件 当我们按下位置 EditText宽度 - * 图标到控件右边间距...- 图标的宽度 EditText宽度 - 图标到控件右边间距之间我们就算点击了图标,竖直方向就没有考虑 */ @Override public boolean onTouchEvent(...,判断里面字符串长度设置清除图标显示隐藏 */ @Override public void onFocusChange(View v, boolean hasFocus) { this.hasFoucs...setClearIconVisible(getText().length() 0); } else { setClearIconVisible(false); } } / * 设置清除图标显示隐藏

98120

实现Android键盘中英文适配

大家进行Android项目开发时候经常会遇到中文输入英文输入切换情况,本篇内容教给大家实现Android下自动识别中英文键盘功能。...英文环境下,密码框字体一般字体不一致问题 1、xml不能设置inputType 属性、或者password属性 2、中文环境设置inputType可以 3、当要是适配英文,只能在Java代码设置...android:inputType=”date” 日期键盘 android:inputType=”time” 时间键盘 2、Enter键图标的设置 想象一下,当我们EditText完成了输入,想要以输入内容作为关键字进行搜索时...:默认设置,通常由系统自行决定是隐藏还是显示 【H】adjustResize:该Activity总是调整屏幕大小以便留出软键盘空间 【I】adjustPan:当前窗口内容将自动移动以便当前焦点从不被键盘覆盖用户能总是看到输入内容部分...:inputType=”textCapCharacters”可行,但是就不能一块使用密码键盘了。

2.1K10

Android 沉浸式解析轮子使用

Android 上,关于对 StatusBar(状态栏)操作,一直都在不断改善,并且表现越来越好, Android4.4 以下,我们可以对 StatusBar NavigationBar 进行显示隐藏操作...是因为从 Android 6.0(API 23)开始,我们可以改状态栏绘制模式,可以显示白色或浅黑色内容图标(除了魅族手机,魅族自家有做源码更改,6.0 以下就能实现)。...从 Android4.4 以上版本才是真正可以设置沉浸式体验,但也仅仅是操作状态栏导航栏显示隐藏。...1.1.2 两种使用这个属性方式: 使用时候,我们通常需要考虑是状态栏一值显示顶部而不会隐藏或者被遮挡(其他 app 情况如:读书 app 或者是游戏 app 则需要隐藏顶部状态栏),所以只需要通过代码设置...2.1.1 收集 bar 参数 我们使用一个对象用于存储用户设置 bar 参数,这些参数有状态栏导航栏颜色、透明度、显示隐藏等等,通过该对象参数来分别设置 public class BarParams

3.2K10

常用控件之Button详解

前言 小伙伴们肯定都有玩儿一些游戏,比如和平精英,界面上展示名字,其实就是Android咱们上一篇介绍到TextView控件。..., RadioButton, Switch, ToggleButton 二、典型点击用法如下 Button是Android中一个非常简单控件,我们平时项目中,可以说是非常常见,使用率也是相当高。...三、按钮样式设置 每个按钮都使用系统默认按钮背景进行样式化,如果您对默认按钮样式不满意,并且希望对其进行自定义以匹配应用程序设计,那么您可以用绘制状态列表替换按钮背景图像。...状态列表绘制XML定义绘制资源,它根据按钮的当前状态更改其图像。一旦定义了一个可以用XML绘制状态列表,就可以将它应用到具有 android:background属性按钮上。...4.设置显示隐藏 方法一:xml布局里直接设置 android:visibility="invisible" 方法二:Java代码里给 button设置 btnClickMe.setVisibility

1.4K10

安卓13又来了?快!扶起我来!

剪贴板隐藏敏感内容从 Android 13 开始,将内容添加到剪贴板时,系统会显示标准视觉确认界面。新确认界面会执行以下操作:确认内容已成功复制。提供所复制内容预览。...定义分享限制应用可以声明 android.provider.extra.PICK_IMAGES_MAX 值,该值表示向用户显示时照片选择器显示媒体文件数量上限。...借助此功能,用户可以调节受支持 Android 启动器应用图标的色调,以继承所选壁纸其他主题配色。...以下任何情况下,主屏幕都不会显示带主题应用图标,而是显示自适应或标准应用图标:如果用户未启用带主题应用图标如果应用不提供单色应用图标如果启动器不支持带主题应用图标单色应用图标应是一个 VectorDrawable...:roundIcon 属性定义绘制对象中提供单色图标

83440

Android 8.0 自适应图标

原来 Android 8.0(API 级别 26)引入了自适应启动器图标,可以不同设备模型显示各种形状。下面看下官方酷炫动态图: ? ? 图1. 自适应图标支持各种设备之间不同掩码。...可以通过定义 2 层来控制自适应启动器图标的外观,包括背景前景。您必须提供图标图层作为绘图,图标轮廓周围不能有蒙版或背景阴影。 ? 图2. 自适应图标使用 2 个图层 1 个蒙版进行定义。... Android 7.1(API级别25)及更早版本,启动器图标大小为 48 x 48 dp。必须使用以下准则来调整图标图层大小: 两层尺寸必须为 108 x 108 dp。...自适应图标支持各种视觉效果。 注意: 如果您没有使用必要图层更新启动器图标,则该图标与系统 UI 显示其他图标看起来不一致,并且不支持视觉效果。...adaptive-icon> 然后清单使用android:icon 属性以指定绘制资源,还可以使用android:roundIcon 属性定义图标绘制资源。

2.7K100

仿支付宝手势密码

【主要是绘制上方9个提示图标9个宫格密码图标】 图2:设置手势密码 【监听手势输入,TouchEvent事件处理,获取输入手势密码,同时显示在上方提示区域】 图3:再绘制一次,两次密码不一致提示界面...【这里实现时候,错误提示文字加了“左右晃动动画”,错误路径颜色标记为红色】 图4:校验手势密码,输入密码错误,给予红色路径+错误文字提示 二、实现思路: 1....正上方提示区域,用一个类(LockIndicator.java)来实现,自定义view来绘制9个提示图标; 2....手势密码绘制区域,用一个类(GestureContentView.java)来实现,它继承自ViewGroup里面, 添加9个ImageView来表示图标, onLayout()方法设置它们位置;...} else {   // 用户绘制密码与传入密码不同。

1.6K70

Android开发之如何自定义数字键盘详解

需要注意地点是如果Keyboard ,RowKey都可以指定宽高。通常我们可以指定在Keyboard 设置每一个键宽高就可以了。...if (key.codes[0] == -111) {//过滤指定某个键自定义绘制 //绘制后,原来xmlkeyLabel以及keyIcon会被覆盖,如需显示文字 //需要自己重新绘制,要后绘制文字...需要注意一点是文字大小,为了显示其他默认绘制key大小相同,需要获取KeyboardViewmLabelTextSize或者mKeyTextSize,因为该变量没有提供暴露方法,所以需要我们反射操作...:设置反馈垂直偏移量 keyTextColor :设置key标签文字颜色 keyTextSize:设置key标签字体大小 labelTextSize:设置带文本图标的键上个文本小大 --...,如使用这个则最后显示布局不全(一部分内容导航栏区域) var frameLayout: FrameLayout = mActivity.window.decorView.find(android.R.id.content

2.9K21

开发者选项详解

或者,您也可以使用显示演示模式隐藏通知显示预设状态栏。 桌面备份密码:设置备份密码,以便您可以使用 adb 命令备份恢复受密码保护设备应用与数据。...启用指针位置可以用十字准线设备上显示指针(点按)位置。屏幕顶部会显示一个条形,用于跟踪十字准线坐标(图 6)。您移动指针时,该条形坐标会跟踪十字准线位置,且屏幕上会绘制出指针路径。...强制进行 GPU 渲染:如果应用编写时默认情况下不进行 GPU 渲染,强制应用使用 GPU 绘制 2D 图形。 显示 GPU 视图更新:显示使用 GPU 绘制任何屏幕上元素。...调试 GPU 过度绘制显示设备上颜色编码,以便您可视化相同像素同一帧绘制次数。可视化会显示应用可能在哪里进行了不必要渲染。...下图是选择条形图后显示情况: 每列数据显示了渲染每一帧需要时间,每一条线意味着一帧被绘制出来,而每条线不同颜色又代表着绘制过程不同阶段: Draw (蓝色) 代表着

7.7K10
领券