Я делаю EditText для получения пароля от пользователя.
Поэтому я изменил тип ввода на пароль.
<EditText
android:id = "@+id/edittext_Password"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:backgroundTint = "@color/colorPrimary"
android:inputType = "textPassword"
android:layout_weight = "1"
/>
Когда я вставляю слово в EditText, появляется черная точка. Я хочу изменить точку на ресурс с возможностью рисования.
Я не думаю, что вы можете установить drawable вместо char.
Вы можете опубликовать требуемый интерфейс.
@Khemraj Просто обведи вот так
@ManishGupta Да, я вижу это, но он возвращает char. Мне нужен ресурс с возможностью рисования
@PolarisNation вы хотите изменить цвет точки?
@PolarisNation проверьте это github.com/ChaosLeong/PinView
Вы можете написать код для ваших требований, следуя этому коду.
Ответ исходит от этот учебник, и он описывает поведение, когда пользователь:
войдет в экран входа в систему, клавиатура откроется автоматически.
пытается ввести в него значение, тогда фон текстового поля меняется на текстовое поле со звездочкой.
пытается отменить / удалить введенное значение с помощью клавиши возврата на клавиатуре, тогда фон текстового поля изменится на текстовое поле без звездного фона.
Прежде всего вам нужно создать два drawables:


Затем, согласно этому подходу, вы должны реализовать метод addTextChangedListener на вашем EditText. После этого в качестве параметра вы создаете новый экземпляр класса TextWatcher и реализуете его методы:
etxtPin1.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
if (etxtPin1.getText().toString().trim().length()==1){
etxtPin1.clearFocus();
etxtPin2.requestFocus();
etxtPin1.setBackgroundResource(R.drawable.pin_txt_bg_star);
}
}
});
Затем вам нужно реализовать setOnKeyListener и его метод onKey:
this.etxtPin1.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View paramView, int paramInt, KeyEvent paramKeyEvent) {
if ((paramKeyEvent.getAction() == KeyEvent.ACTION_DOWN)&&(paramInt == 67) && (LoginActivity.this.etxtPin2.getText().length() == 0)) {
etxtPin1.requestFocus();
etxtPin1.setBackgroundResource(R.drawable.pin_txt_bg);
etxtPin1.setText("");
}
return false;
}
});

Другой подход: создает собственный класс, расширяющий PasswordTransformationMethod.
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
}
}
};
Ссылка: В android как показать звездочку (*) вместо точек в EditText с типом ввода как textPassword?
Спасибо попробую. Но при другом подходе он возвращает char? недоступный ресурс.
Если вы хотите изменить цвет точек в редактируемом тексте, вы можете изменить цвет текста, который также изменит цвет точек.
Вы можете использовать этот код, чтобы сделать то же самое:
android:textColor = "#FF0000" or setTextColor(int)
Спасибо, но это тот ответ, который я хотел
Возможный дубликат: stackoverflow.com/questions/6125352/…