版权声明:本文为HaiyuKing原创文章,转载请注明出处!
前言
记录输入框显示、隐藏密码的简单布局以及实现方式。
效果图
代码分析
方式一
/**方式一:*/ private void showOrHiddenPwd(){ if(! showPwd){ showPwd = true; img_pwdshow.setImageResource(R.drawable.pwd_show); //显示密码 edt_password.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); }else{ showPwd = false; img_pwdshow.setImageResource(R.drawable.pwd_hidden); //隐藏密码 edt_password.setTransformationMethod(PasswordTransformationMethod.getInstance()); } }
方式二
/**方式二:*/ private void showOrHiddenPwdWithInputType(){ if(! showPwd){ showPwd = true; img_pwdshow.setImageResource(R.drawable.pwd_show); //显示密码 edt_password.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); }else{ showPwd = false; img_pwdshow.setImageResource(R.drawable.pwd_hidden); //隐藏密码 edt_password.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); } }
使用步骤
一、项目组织结构图
注意事项:
1、 导入类文件后需要change包名以及重新import R文件路径
2、 Values目录下的文件(strings.xml、dimens.xml、colors.xml等),如果项目中存在,则复制里面的内容,不要整个覆盖
二、导入步骤
将comm_input_selector.xml复制到项目中【本来是想作为输入框的背景框,就会实现输入框获取焦点的时候边框变色,但是现在作为LinearLayout的背景,可以实现聚焦的时候变色的效果】
将图片资源复制到项目中【根据实际情况变更】
三、使用方法
布局文件
Activity中使用
package com.why.project.androidcnblogsdemo.activity;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.text.InputType;import android.text.method.HideReturnsTransformationMethod;import android.text.method.PasswordTransformationMethod;import android.view.View;import android.widget.EditText;import android.widget.ImageView;import com.why.project.androidcnblogsdemo.R;/** * Android中EditText显示明文与密文的两种方式*/public class MainActivity extends AppCompatActivity { private EditText edt_password; private ImageView img_pwdshow; private boolean showPwd = false;//默认不显示密码 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initViews(); initEvents(); } private void initViews() { edt_password = (EditText) findViewById(R.id.edt_password); img_pwdshow = (ImageView) findViewById(R.id.img_pwdshow); } private void initEvents() { img_pwdshow.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showOrHiddenPwdWithInputType(); } }); } /**方式一:*/ private void showOrHiddenPwd(){ if(! showPwd){ showPwd = true; img_pwdshow.setImageResource(R.drawable.pwd_show); //显示密码 edt_password.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); }else{ showPwd = false; img_pwdshow.setImageResource(R.drawable.pwd_hidden); //隐藏密码 edt_password.setTransformationMethod(PasswordTransformationMethod.getInstance()); } } /**方式二:*/ private void showOrHiddenPwdWithInputType(){ if(! showPwd){ showPwd = true; img_pwdshow.setImageResource(R.drawable.pwd_show); //显示密码 edt_password.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); }else{ showPwd = false; img_pwdshow.setImageResource(R.drawable.pwd_hidden); //隐藏密码 edt_password.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); } }}
混淆配置
无
参考资料
项目demo下载地址
暂时空缺