Можно ли заменить точки в пароле (EditText) на пользовательский вид?

Я хочу заменить точки в EditText (android:inputType="textPassword") пользовательским XML или изображением. Я могу заменить точки на любой другой символ методом PasswordTransformationMethod, но в данном случае это не то, что требуется.

Итак, возможно ли это?

Спасибо.


person Mark Korzhov    schedule 27.04.2015    source источник


Ответы (2)


Существует Span API для редактирования текста. Вы можете использовать TextWatcher в связи с ImageSpan. Также не забывайте о функции копирования/вставки в безопасном разрешении. Таким образом, решение прослушивает ввод текста и обертывает его с помощью ImageSpans. когда вы хотите получить пароль, вы сможете просто использовать EditText.getText.toString();

person Yevgen Kulik    schedule 27.04.2015

Посмотрите на этот 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());
person Community    schedule 27.04.2015