【发布时间】:2015-04-27 09:24:58
【问题描述】:
我想用自定义 xml 或图像替换 EditText (android:inputType="textPassword") 中的点。我可以使用PasswordTransformationMethod 方法将点替换为任何其他符号,但这不是这种情况下所需要的。
那么,有可能吗?
谢谢。
【问题讨论】:
标签: android android-edittext android-xml xml-attribute
我想用自定义 xml 或图像替换 EditText (android:inputType="textPassword") 中的点。我可以使用PasswordTransformationMethod 方法将点替换为任何其他符号,但这不是这种情况下所需要的。
那么,有可能吗?
谢谢。
【问题讨论】:
标签: android android-edittext android-xml xml-attribute
有用于编辑文本的 Span API。您可以将TextWatcher 与ImageSpan 结合使用。也不要忘记安全的复制/粘贴功能。所以解决方案是监听文本输入,并用 ImageSpans 包装它。当您想获取密码时,您可以简单地使用 EditText.getText.toString();
【讨论】:
请看这个 http://developer.android.com/reference/android/text/method/PasswordTransformationMethod.html
试试这个,
public class MyPasswordTransformationMethod 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
}
}
};
然后:
text.setTransformationMethod(new MyPasswordTransformationMethod());
【讨论】: