安卓开发密码显示隐藏(三种方法)

新建activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.percent.PercentRelativeLayout
    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:orientation="vertical"
    tools:context=".loginActivity">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true">
        <RelativeLayout android:id="@+id/MobileInput"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <EditText
                android:id="@+id/mobile"

                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="手机号"
                android:textSize="18sp"
                android:inputType="number"/>
        </RelativeLayout>
        <RelativeLayout android:id="@+id/PwdInput"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/MobileInput">

            <EditText
                android:id="@+id/password"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="密码"
                android:textSize="18sp"
                android:inputType="textPassword"/>
            <ImageView android:id="@+id/icon_eye_hide"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerInParent="true"
                android:visibility="invisible"
                android:background="@mipmap/icon_eye_hide"/>
            <ImageView android:id="@+id/icon_eye_show"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerInParent="true"
                android:visibility="visible"
            android:background="@mipmap/icon_eye_show"/>


        </RelativeLayout>

        <RelativeLayout android:id="@+id/LoginButton"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:layout_below="@+id/PwdInput"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp">

            <Button
                android:id="@+id/btn_login"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="登         录"
                android:textSize="18sp"/>

        </RelativeLayout>

        <RelativeLayout android:id="@+id/RegisterPwd"

            android:gravity="center"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/LoginButton"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp">

            <TextView
                android:id="@+id/register"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="注册"
                android:layout_alignParentLeft="true"
                android:textColor="@color/colorPrimary"
                android:textSize="14sp"/>

            <TextView
                android:id="@+id/btn_RetrievePwd"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="忘记密码?"
                android:layout_alignParentRight="true"
                android:textColor="@color/colorPrimary"
                android:textSize="14sp"/>
        </RelativeLayout>
    </RelativeLayout>
</android.support.percent.PercentRelativeLayout>

MainActivity.java

package example.com.mypassworddemo;


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

public class loginActivity extends AppCompatActivity implements View.OnClickListener{
        private ImageView icon_eye_hide,icon_eye_show;
        private EditText password;


        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            icon_eye_hide = (ImageView) findViewById(R.id.icon_eye_hide);
            icon_eye_show = (ImageView) findViewById(R.id.icon_eye_show);
            password = (EditText) findViewById(R.id.password);
            icon_eye_hide.setOnClickListener(this);
            icon_eye_show.setOnClickListener(this);
        }
        @Override
        public void onClick(View view){
            switch (view.getId()) {
                case R.id.icon_eye_hide:
                    PwdHide(password,icon_eye_hide,icon_eye_show);
                    break;
                case R.id.icon_eye_show:
                    PwdShow(password,icon_eye_hide,icon_eye_show);
                    break;
                default:
                    break;
            }

        }
        /**
         * 密码显示隐藏
         */
        public static void PwdHide(EditText pwds,ImageView hides,ImageView shows){
            hides.setVisibility(View.INVISIBLE);
            shows.setVisibility(View.VISIBLE);

            //隐藏密码方法一
            PasswordTransformationMethod method1 = PasswordTransformationMethod.getInstance();
            pwds.setTransformationMethod(method1);
            //切换后将EditText光标置于末尾
            CharSequence charSequence = pwds.getText();
            if (charSequence instanceof Spannable) {
                Spannable spanText = (Spannable) charSequence;
                Selection.setSelection(spanText, charSequence.length());
            }
        }
        public static void PwdShow(EditText pwds, ImageView hides, ImageView shows){
            shows.setVisibility(View.INVISIBLE);
            hides.setVisibility(View.VISIBLE);

            
            //显示密码方法一
            HideReturnsTransformationMethod method2 = HideReturnsTransformationMethod.getInstance();
            pwds.setTransformationMethod(method2);
            // 切换后将EditText光标置于末尾
            CharSequence charSequence1 = pwds.getText();
            if (charSequence1 instanceof Spannable) {
                Spannable spanText = (Spannable) charSequence1;
                Selection.setSelection(spanText, charSequence1.length());
            }
        }
 }

下载链接

https://download.csdn.net/download/yu_qiushui/10797951

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值