修改Android 的EditText的密码视觉回显

来源:互联网 发布:今日方知我是我的诗句 编辑:程序博客网 时间:2024/06/05 04:05

Change EditText password mask character to asterisk (*)


如果EditText的inputType的类型如果为textPassword,那么输入键盘输入字符时,视觉效果是会把最后输入的字符明文显示出来的。
如果录屏或者截屏,那么则会把密码记录下来,带来安全隐患。
解决方案


<EditText    android:id="@+id/passWordEditText"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:gravity="center"    android:inputType="textPassword"    android:password="true"/>



EditText edittext = (EditText)findViewById(R.id.passWordEditText);edittext.setTransformationMethod(new AsteriskPasswordTransformationMethod());


public class AsteriskPasswordTransformationMethod extends PasswordTransformationMethod {    @Override    public CharSequence getTransformation(CharSequence source, View view) {        return new PasswordCharSequence(source);    }    private class PasswordCharSequence implements CharSequence {        private CharSequence mSource;        public PasswordCharSequence(CharSequence source) {            mSource = source; // Store char sequence        }        public char charAt(int index) {            return '*'; // This is the important part        }        public int length() {            return mSource.length(); // Return default        }        public CharSequence subSequence(int start, int end) {            return mSource.subSequence(start, end); // Return default        }    }};


阅读全文
0 0