Отображение цветного текста в текстовом поле

#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);
  }