android实现密码框右侧显示小眼睛

本文实例为大家分享了android实现密码框右侧显示小眼睛的具体代码,供大家参考,具体内容如下

实现效果

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:background="#ffffff"
  android:orientation="vertical" >

  <LinearLayout

    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="12dp" >

    <RelativeLayout
      android:layout_width="match_parent"
      android:layout_height="wrap_content" >

      <EditText
        android:paddingTop="10dp"
        android:background="@drawable/selector_sign"
        android:id="@+id/et_usertel"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:hint="@string/editText_phont"
        android:inputType="phone"
        android:paddingLeft="90dp"
        android:singleLine="true"
        android:textColorHint="#DDDDDD"
        android:textSize="16sp" />

      <EditText
        android:id="@+id/edt_chosed_country_num"
        android:layout_width="60dp"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/et_usertel"
        android:layout_centerVertical="true"
        android:layout_marginLeft="10dp"
        android:background="@color/white"
        android:inputType="number"
        android:maxLength="5"
        android:text="+86"
        android:textColor="#353535"
        android:textSize="16sp" />
    </RelativeLayout>

    <LinearLayout
      android:id="@+id/linear_password_code"
      android:visibility="visible"
      android:layout_marginTop="10dp"
      android:orientation="horizontal"
      android:layout_width="match_parent"
      android:layout_height="wrap_content">
      <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <EditText
          android:background="@drawable/selector_sign"
          android:id="@+id/et_password"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_centerInParent="true"
          android:paddingTop="10dp"
          android:hint="@string/editText_code"
          android:paddingLeft="90dp"
          android:singleLine="true"
          android:textColorHint="#DDDDDD"
          android:textSize="16sp" />

        <Button
          android:id="@+id/bu_register_code"
          android:layout_width="wrap_content"
          android:layout_height="40dp"
          android:layout_alignRight="@+id/et_password"
          android:layout_marginRight="2dp"
          android:background="@drawable/shape_border_color_primary_sign"
          android:text="@string/verification_code"
          android:textColor="@drawable/selector_text_color_primary"
          android:textSize="16sp" />
        <!-- <View
           android:layout_marginTop="1dp"
           android:layout_alignBottom="@+id/bu_code"
           android:layout_width="290dp"
           android:layout_height="1dp"
           android:background="@color/light_grey"/>-->

      </RelativeLayout>

    </LinearLayout>

    <LinearLayout
      android:id="@+id/password_liner"
      android:visibility="gone"
      android:layout_marginTop="10dp"
      android:orientation="horizontal"
      android:layout_width="match_parent"
      android:layout_height="wrap_content">
      <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <EditText
          android:background="@drawable/selector_sign"
          android:id="@+id/et_password_code"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_centerInParent="true"
          android:paddingTop="10dp"
          android:hint="请输入密码登录"
          android:paddingLeft="90dp"
          android:singleLine="true"
          android:textColorHint="#DDDDDD"
          android:inputType="textPassword"
          android:textSize="16sp" />

        <ImageView
          android:id="@+id/imageView"
          android:layout_width="20dp"
          android:layout_height="20dp"
          android:layout_alignParentRight="true"
          android:layout_margin="10dp" />
      </RelativeLayout>

    </LinearLayout>

    <Button
      android:textColor="@color/background"
      android:layout_marginTop="10dp"
      android:background="@drawable/shape_color_primary"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="登录"/>

    <LinearLayout
      android:layout_marginTop="2dp"
      android:layout_width="match_parent"
      android:layout_height="wrap_content">
      <TextView
        android:textStyle="bold"
        android:gravity="center"
        android:text="使用密码登录 >"
        android:id="@+id/tv_register_login_password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    </LinearLayout>

  </LinearLayout>

</LinearLayout>

//主要代码如下

<LinearLayout
      android:id="@+id/password_liner"
      android:visibility="gone"
      android:layout_marginTop="10dp"
      android:orientation="horizontal"
      android:layout_width="match_parent"
      android:layout_height="wrap_content">
      <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <EditText
          android:background="@drawable/selector_sign"
          android:id="@+id/et_password_code"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_centerInParent="true"
          android:paddingTop="10dp"
          android:hint="请输入密码登录"
          android:paddingLeft="90dp"
          android:singleLine="true"
          android:textColorHint="#DDDDDD"
          android:inputType="textPassword"
          android:textSize="16sp" />

        <ImageView
          android:id="@+id/imageView"
          android:layout_width="20dp"
          android:layout_height="20dp"
          android:layout_alignParentRight="true"
          android:layout_margin="10dp" />
      </RelativeLayout>

</LinearLayout>

重要代码

private boolean isHideFirst = true;// 输入框密码是否是隐藏的,默认为true

  if (isHideFirst == true) {
            imageView.setImageResource(R.drawable.open);
            //密文
            HideReturnsTransformationMethod method1 = HideReturnsTransformationMethod.getInstance();
            et_password_code.setTransformationMethod(method1);
            isHideFirst = false;
          } else {
            imageView.setImageResource(R.drawable.close);
            //密文
            TransformationMethod method = PasswordTransformationMethod.getInstance();
            et_password_code.setTransformationMethod(method);
            isHideFirst = true;

          }
     // 光标的位置
    int index = et_password_code.getText().toString().length();
    et_password_code.setSelection(index);
package com.ynrd.entrepreneur.activity;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
import android.text.method.TransformationMethod;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.ynrd.entrepreneur.R;
import com.ynrd.entrepreneur.utils.CountDownTimerUtils;

public class RegisterActivity extends BaseCommonActivity implements View.OnClickListener {

  private Button bu_register_code;
  private TextView tv_register_login_password;
  private boolean isHideFirst = true;// 输入框密码是否是隐藏的,默认为true
  private boolean isFirst = true;// 是否密码登录,默认是验证码登录

  private ImageView imageView;
  private EditText et_password_code;
  private LinearLayout linear_password_code,password_liner;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_register);
  }

  @Override
  protected void initViews() {
    super.initViews();
    //获取验证码
    bu_register_code = findViewById(R.id.bu_register_code);
    tv_register_login_password = findViewById(R.id.tv_register_login_password);
    imageView = findViewById(R.id.imageView);
    et_password_code = findViewById(R.id.et_password_code);
    linear_password_code = findViewById(R.id.linear_password_code);
    password_liner = findViewById(R.id.password_liner);
  }

  @Override
  protected void initListeners() {
    super.initListeners();
    bu_register_code.setOnClickListener(this);
    tv_register_login_password.setOnClickListener(this);
    imageView.setOnClickListener(this);
    imageView.setImageResource(R.drawable.close);
  }

  @Override
  public void onClick(View v) {
    switch (v.getId()){
      case R.id.bu_register_code:
        //验证码方法 后期调用服务器
        CountDownTimerUtils mCountDownTimerUtils = new CountDownTimerUtils(bu_register_code, 30000, 1000);
        mCountDownTimerUtils.start();
        break;
      case R.id.tv_register_login_password:
        if (isFirst == true){
          //切换成密码登录
          linear_password_code.setVisibility(View.GONE);
          password_liner.setVisibility(View.VISIBLE);
          tv_register_login_password.setText("使用短信验证码登录 >");
          isFirst = false;
        }else{
          //切换成验证码登录
          linear_password_code.setVisibility(View.VISIBLE);
          password_liner.setVisibility(View.GONE);
          tv_register_login_password.setText("使用密码登录 >");
          isFirst = true;
        }
        break;
      case R.id.imageView:
          if (isHideFirst == true) {
            imageView.setImageResource(R.drawable.open);
            //密文
            HideReturnsTransformationMethod method1 = HideReturnsTransformationMethod.getInstance();
            et_password_code.setTransformationMethod(method1);
            isHideFirst = false;
          } else {
            imageView.setImageResource(R.drawable.close);
            //密文
            TransformationMethod method = PasswordTransformationMethod.getInstance();
            et_password_code.setTransformationMethod(method);
            isHideFirst = true;

          }
          // 光标的位置
          int index = et_password_code.getText().toString().length();
          et_password_code.setSelection(index);
        break;
    }
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android 自定义View 密码框实例代码

    暴露您view中所有影响可见外观的属性或者行为. •通过XML添加和设置样式 •通过元素的属性来控制其外观和行为,支持和重要事件交流的事件监听器 详细步骤见:Android 自定义View步骤 效果图展示: 支持的样式 可以通过XML定义影响外边和行为的属性如下 边框圆角值,边框颜色,分割线颜色,边框宽度,密码长度,密码大小,密码颜色 <declare-styleable name="PasswordInputView"> <attr name="borde

  • android实现密码框右侧显示小眼睛

    本文实例为大家分享了android实现密码框右侧显示小眼睛的具体代码,供大家参考,具体内容如下 实现效果 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" andro

  • Android实现密码明密文切换(小眼睛)

    本文实例为大家分享了Android实现密码明密文切换的具体代码,供大家参考,具体内容如下 小眼睛在密码栏右边! 奉上我使用的素材: 添加图片到res/darwable中 对安卓的知识掌握的非常浅,只知道 图片名称不要大写,大写会报错!如果格式正确仍会报错的话,则 在gradle里加上这两句,俺也不懂为什么,都没有讲原理的. aaptOptions.cruncherEnabled = false aaptOptions.useNewCruncher = false 编辑登录页.xml 文本+可编辑

  • JS实现密码框的显示密码和隐藏密码功能示例

    本文实例讲述了JS实现密码框的显示密码和隐藏密码功能.分享给大家供大家参考,具体如下: 运行效果图如下: 完整实例代码: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <form method="POST" action="

  • Android实现密码隐藏和显示

    本文实例为大家分享了Android实现密码隐藏和显示的具体代码,供大家参考,具体内容如下 在Android开发中,需要密码的隐藏和显示,下面就和大家分享一下使用方法: xml代码: <LinearLayout              android:layout_width="match_parent"             android:layout_height="50dp"             android:background="

  • jquery 实现密码框的显示与隐藏示例代码

    复制代码 代码如下: <html> <head> <script type="text/javascript" src="jquery-1.5.1.min.js"></script> <script type="text/javascript"> $(function(){ $("#chk").bind({ click: function(){ if($(this).

  • JS实现表单中点击小眼睛显示隐藏密码框中的密码

    领导交个一个任务,要求在表单中点击小眼睛显示隐藏密码框中的密码!在一些网站中经常会用到这样的功能,今天小编就给大家分享我的实现思路及代码 准备: 1.两张png图片,一张睁眼,一张闭眼,可以到阿里巴巴矢量图库寻找(免费下载) 最终效果图 css样式部分,样式可根据自己喜好设置,没有过硬要求 <style> div:first-child { width: 300px; height: 50px; background-color: red; color: white; margin: 20px

  • Android带清除按钮、密码可见小眼睛的输入框

    前言 相信不少小伙伴在开发登录功能时候,或多或少都会用到输入框清除按钮.密码可见与隐藏小眼睛按钮,我之前也是但写这个功能,但是在找回密码.忘记密码里面还要重新写一次很是麻烦,现在我把它只做了一个自定义控件,可以配置清除按钮.密码可见小眼睛是否显示以及图标,有渐隐渐显和横向移动动画,不知道怎么上传可以直接观看的视频,附上三张效果图,可以点击链接观看视频是否是你想要的效果.   一.自定义控件ClearEditText 我的这个自带清除.小眼睛的控件,是一个自定义控件,控件名称ClearEditTe

  • Android 开发仿简书登录框可删除内容或显示密码框的内容

    简书App 是我很喜欢的一款软件.今天就模仿了一下他的登录框.先上图: 好了下面上代码,自定义ImgEditText 继承与EditText.重写一些方法. package lyf.myimgedittextdemo; import android.content.Context; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.text.Editable; impor

  • 基于JS实现密码框(password)中显示文字提示功能代码

    其实实际上实现中并不能让password中显示文字提示,但是我们在工作中有这样的需求,当没输入东西的时候,框内有提示输入密码,但是当输入东西的时候又显示的是*号,那么是如何实现的呢?其实原理很简单,就是放两个文本框,样式以及定位都是一样的.先将type为password的隐藏,只显示type为text的伪密码框,value设置提示内容例如请输入密码.然后当input触发的时候,type为text的input隐藏,让type为password的input显示出来.然后当检测password的val

  • 微信小程序使用input组件实现密码框功能【附源码下载】

    本文实例讲述了微信小程序使用input组件实现密码框功能.分享给大家供大家参考,具体如下: 1.效果展示 2.关键代码 index.wxml <view style="width:80%; display:flex;"> <view>用户名:</view> <input style="border: 1px solid;border-color: lightblue;width:60%;" placeholder="

随机推荐