Android EditText里的密码显示可见与不可见
2017-04-05 13:44
141 查看
刚开始我是修改EditText的inputType,这个就是EditText的输入模式。我之前也是想修改这个inputType的,这个在xml里面修改可以,代码是这样的:
动态修改inputType
我也阅读InputType里面的源码,也没发现inputType从密码不可见模式可以转为可见模式
inputType里面的部分源码说明如下如下:
解决方法 动态修改TransformationMethod
![](https://img-blog.csdn.net/20170405114541212?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU29uZ183NDExMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20170405114643025?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU29uZ183NDExMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20170405114613600?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU29uZ183NDExMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
xml布局文件 一个线性布局里面左右各方一个ImageButton,中间放一个EditText,图片自己找喔
上面的LinearLayout的background com_btn_background.xml如下:
LinearLayout右边的图片有一个选择器selector icon_eye.xml如下(图片自己找哈):
java代码如下:
代码都是部分片段,看懂的同学们自己补充哈-_-
android:inputType=”textPassword”(密码不可见)
android:inputType=”textVisiblePassword”( 可见密码) 有两种模式。但是想在java代码里面动态修改貌似改显示与不可见,貌似只能从可见模式转为可见模式,但是转不回去。若有大神可以从可见模式转为不可见模式的告诉我哈,我也学习学习-_-代码如下:
动态修改inputType
//从密码不可见模式变为密码可见模式(行得通) et_password.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); //从密码可见模式变为密码不可见模式(行不通) et_password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
我也阅读InputType里面的源码,也没发现inputType从密码不可见模式可以转为可见模式
inputType里面的部分源码说明如下如下:
/** * Variation of {@link #TYPE_CLASS_TEXT}: entering a password, which should * be visible to the user. */ public static final int TYPE_TEXT_VARIATION_VISIBLE_PASSWORD = 0x00000090; /** * Variation of {@link #TYPE_CLASS_TEXT}: entering a password. */ public static final int TYPE_TEXT_VARIATION_PASSWORD = 0x00000080;
解决方法 动态修改TransformationMethod
//从密码不可见模式变为密码可见模式 et_password.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); //从密码可见模式变为密码不可见模式 et_password.setTransformationMethod(PasswordTransformationMethod.getInstance());
下面来一个小demo
效果图:xml布局文件 一个线性布局里面左右各方一个ImageButton,中间放一个EditText,图片自己找喔
<!--请输入密码--> <LinearLayout android:layout_width="match_parent" android:layout_height="40dp" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_marginTop="10dp" android:background="@drawable/login_background" android:gravity="center_vertical" android:orientation="horizontal"> <ImageView android:layout_width="20dp" android:layout_height="25dp" android:layout_marginLeft="10dp" android:src="@drawable/icon_coupon" /> <EditText android:id="@+id/et_password" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:background="@android:color/transparent" android:hint="@string/input_password" android:imeOptions="actionDone" android:inputType="textPassword" android:paddingLeft="5dp" android:textColor="@color/black" android:textSize="16sp" /> <ImageView android:id="@+id/iv_eye" android:layout_width="20dp" android:layout_height="25dp" android:layout_marginRight="10dp" android:layout_marginLeft="10dp" android:src="@drawable/icon_eye" /> </LinearLayout>
上面的LinearLayout的background com_btn_background.xml如下:
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <!--描边--> <stroke android:width="1.0dp" android:color="#ededed" /> <!--填充颜色--> <solid android:color="#ffffff" /> </shape>
LinearLayout右边的图片有一个选择器selector icon_eye.xml如下(图片自己找哈):
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/icon_eye_closs" android:state_selected="false" /> <item android:drawable="@drawable/icon_eye_show" android:state_selected="true" /> </selector>
java代码如下:
private EditText et_password; private ImageView ivEye; private boolean isOpenEye = false; //绑定id et_password = (EditText) v.findViewById(R.id.et_password); ivEye = (ImageView) v.findViewById(R.id.iv_eye); //密码是否可见 ivEye.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(!isOpenEye) { ivEye.setSelected(true); isOpenEye = true; //密码可见 et_password.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); }else{ ivEye.setSelected(false); isOpenEye = false; //密码不可见 et_password.setTransformationMethod(PasswordTransformationMethod.getInstance()); } } });
代码都是部分片段,看懂的同学们自己补充哈-_-
相关文章推荐
- Android文本输入框(EditText)切换密码的显示与隐藏
- Android中设置EditText显示或隐藏密码
- Android EditText 设置密码可见性(查看密码按钮的实现)
- Android打造带删除的EditText并且实现输入框密码显示、隐藏
- Android中设置EditText显示或隐藏密码
- Android完美解决输入框EditText隐藏密码打勾显示密码问题
- Android UI设计 文本输入框EditText用法(输入密码 隐藏显示输入的字符串)
- Android之EditText 为密码输入框时,密码的显示与隐藏
- android的EditText显示隐藏密码时候的全角问题
- Android完美解决输入框EditText隐藏密码打勾显示密码问题
- Android完美解决输入框EditText隐藏密码打勾显示密码问题
- Android文本输入框(EditText)输入密码时显示与隐藏
- Android完美解决输入框EditText隐藏密码打勾显示密码问题
- Android完美解决输入框EditText隐藏密码打勾显示密码问题
- Android EditText 显示或隐藏密码,增加边框,设置光标操作
- Android完美解决输入框EditText隐藏密码打勾显示密码问题
- Android文本输入框(EditText)切换密码的显示与隐藏
- android EditText中的密码显示与隐藏
- Android完美解决输入框EditText隐藏密码打勾显示密码问题
- Android之EditText 为密码输入框时,密码的显示与隐藏