#android
#Android
Вопрос:
я записываю текст в EditText.Может отображать текст в нескольких цветах, так как android:textColor
должен измениться цвет всего текста. пожалуйста, обновите
Комментарии:
1. Вы хотите добавить разные цвета к тексту во время добавления пользователем или после ввода текста?
2. когда пользователь вводит текст. когда пользователь нажимает enter, следующий текст, который появляется в следующей строке, приобретает новый цвет
3. Вы хотите, чтобы каждая строка вашего редактируемого текста имела другой цвет, правильно ли это?
Ответ №1:
Вы можете применить ForegroundColorSpan
и / или BackgroundColorSpan
к частям вашего текста.
Этот пример проекта применяется BackgroundColorSpan
(для выделения результатов поиска в TextView
), но тот же принцип применим для ForegroundColorSpan
и EditText
виджета.
private void searchFor(String text) {
TextView prose=(TextView)findViewById(R.id.prose);
Spannable raw=new SpannableString(prose.getText());
BackgroundColorSpan[] spans=raw.getSpans(0,
raw.length(),
BackgroundColorSpan.class);
for (BackgroundColorSpan span : spans) {
raw.removeSpan(span);
}
int index=TextUtils.indexOf(raw, text);
while (index >= 0) {
raw.setSpan(new BackgroundColorSpan(0xFF8B008B), index, index
text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
index=TextUtils.indexOf(raw, text, index text.length());
}
prose.setText(raw);
}