EditText 显示明文和密码

简介: 1、效果图   2、布局文件    3、代码实现(方式一) package wifi.
1、效果图

 

2、布局文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="wifi.app.wei.com.myapplication.MainActivity">


    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="10dp"
        >

        <ImageView
            android:id="@+id/image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/eye_close"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            />

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

    </RelativeLayout>


</RelativeLayout>

  

3、代码实现(方式一)

package wifi.app.wei.com.myapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.InputType;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

    private ImageView imageView ;
    private EditText editText ;
    boolean eyeOpen = false ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main );
        imageView = (ImageView) findViewById( R.id.image) ;
        editText = (EditText) findViewById( R.id.pass_et);

        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if ( eyeOpen ){
                    //密码 TYPE_CLASS_TEXT 和 TYPE_TEXT_VARIATION_PASSWORD 必须一起使用
                    editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
                    imageView.setImageResource( R.mipmap.eye_close );
                    eyeOpen = false ;
                }else {
                    //明文
                    editText.setInputType( InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD );
                    imageView.setImageResource( R.mipmap.eye_open );
                    eyeOpen = true ;
                }
            }
        });
    }
}

  

 4、代码实现(方式二)

package wifi.app.wei.com.myapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

    private ImageView imageView ;
    private EditText editText ;
    boolean eyeOpen = false ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main );
        imageView = (ImageView) findViewById( R.id.image) ;
        editText = (EditText) findViewById( R.id.pass_et);

        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if ( eyeOpen ){
                    //密码
                    editText.setTransformationMethod(PasswordTransformationMethod.getInstance());
                    imageView.setImageResource( R.mipmap.eye_close );
                    eyeOpen = false ;
                }else {
                    //明文
                    editText.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
                    imageView.setImageResource( R.mipmap.eye_open );
                    eyeOpen = true ;
                }
            }
        });
    }
}

  

 

相关文章
|
运维 供应链 监控
奶茶上云,原生的更好喝
奶茶上云,原生的更好喝
493 1
|
人工智能 监控 测试技术
利用AI辅助工具提升软件测试效率
【2月更文挑战第17天】 随着科技的不断发展,人工智能(AI)在各个领域的应用越来越广泛。在软件测试领域,AI技术也发挥着重要作用。本文将探讨如何利用AI辅助工具提升软件测试效率,包括自动化测试、智能缺陷识别和预测等方面。通过引入AI技术,软件测试过程将变得更加高效、准确和可靠。
1023 1
|
测试技术
读完这篇文章后,才发现Allpairs这款工具,让测试用例变得如此简单
读完这篇文章后,才发现Allpairs这款工具,让测试用例变得如此简单
880 0
|
10月前
|
数据安全/隐私保护
基于爬山法MPPT和PI的直驱式永磁同步风力发电机控制系统simulink建模与仿真
本课题研究基于爬山法MPPT和PI控制器的直驱式永磁同步风力发电机(PMSG)控制系统,完成Simulink建模与仿真。系统无需齿轮箱,效率与可靠性更高。爬山法MPPT通过调整发电机转速实现最大功率跟踪,PI控制器用于调节系统输出以接近期望值。采用MATLAB2022a进行核心程序开发与模型搭建,仿真结果完整且无水印。该控制策略可有效提升能量转换效率及系统稳定性,适用于不同风速条件下的风力发电场景。
|
小程序 前端开发 JavaScript
【电商新机遇】支付宝小程序如何助你打造爆款电商解决方案?揭秘背后的技术奥秘!
【8月更文挑战第27天】本文详细介绍如何利用支付宝小程序构建电商应用,覆盖从项目初始化、页面设计、功能开发到数据分析的全流程。首先,需注册开发者账号并安装相关工具;随后创建项目,并按示例配置基本页面结构;接着设计商品列表等界面布局;再实现商品展示等功能;最后运用支付宝提供的工具进行数据分析,以优化用户体验及营销策略。跟随本教程,您将能打造出一款完整的电商小程序。
342 1
|
消息中间件 分布式计算 Kafka
大数据平台的毕业设计02:Spark与实时计算
大数据平台的毕业设计02:Spark与实时计算
330 0
|
人工智能 数据中心
使用光模块Breakout功能减少AI训练中断故障
本文介绍了使用大成鹏通信光模块Breakout功能可以减少AI训练中断故障的问题。通过Breakout功能,单通道故障不会中断其他通道的数据转发,有效解决了传统光模块因单通道故障导致的训练中断问题。同时,还介绍了如何利用Breakout功能进行更灵活的AI基础网络组网。
346 0
|
存储 人工智能 自然语言处理
比Coze AI工作流更简单,用AI数据库打造一个AI笑话大师应用
本文展示如何利用iThinkAir的AI数据库创建一个能生成图文并茂笑话的“笑话大师”。通过构建本地化的数据库,结合多种视图展示形式,并利用AI指令流自动化生成内容。主要步骤包括建立数据库与表结构、定义字段类型如“指令流”以触发AI工作流程。流程涉及条件判断、文本合成与分割、AI模型生成笑话及其插图等内容。最终,笑话大师不仅能生成多样化笑话,还能通过不同方式分享给他人使用,如发布应用、授权协作或备份导出文件。这不仅是一个创意项目示例,也为AI数据库应用开发提供了灵感。
|
存储 Java Maven
Java能这么轻松识别二维码
Java能这么轻松识别二维码
2340 1