text = text + CepVizyon.getPhoneCode() + "\n\n"
+ getText(R.string.currentversion) + CepVizyon.getLicenseText();
activationText.setText(text);
myTextView.setText(text);
Я хочу изменить цвет CepVizyon.getPhoneCode()
строки. Как я могу это сделать?
android
uitextview
textview
атасойх
источник
источник
Ответы:
Spannable более гибкий:
источник
()
после ,text.length
какlength
это метод не является полем. Сделал бы это сам, но правка должна состоять не менее чем из 6 символов :)Html.fromHtml(R.id.your_html_string);
источник
Если у вас есть статический текст, которому нужен цвет, вы можете добавить его без кода через файл строк:
затем
результат
не уверен, с какими версиями api это работает, но не работает для api 19, протестированных до сих пор, поэтому, вероятно, только некоторые из самых последних версий api поддерживают это
изменить: как @hairraisin упоминается в комментариях, попробуйте использовать
fgcolor
вместоcolor
цвета шрифта, тогда он должен работать для более низких уровней api, но для уверенности требуется дополнительное тестированиеисточник
<font fgcolor=...
API 15 и API 25 (хотя я специально не тестировал 19)Что касается ответа Маниша, это будет работать, но вам нужно добавить и избежать кавычек для атрибута цвета.
источник
Мне это хорошо!
источник
Вот
colorize
функция, основанная на ответе andyboot:источник
Вот решение в Kotlin, которое используется
SpannableString
для изменения цвета части строки.источник
Мне не нравилась идея делать это с помощью кода каждый раз, когда я хочу раскрасить части текста, которые я много делал во всех своих приложениях (и поскольку в некоторых случаях текст устанавливается во время выполнения с разными встроенными определенные цвета), поэтому я создал свой собственный
MarkableTextView
.Идея заключалась в следующем:
Вот пошаговый процесс:
Сначала мне нужен был способ найти теги XML в заданной строке, и я
Regex
сделал свое дело ..Чтобы указанное выше совпадало с тегом XML, он должен соответствовать следующим критериям:
<a>
<a >
<a-a>
<a ..attrs..>
но не< a>
<1>
<a></a>
но не<a></b>
Теперь что касается атрибутов, которые мы собираемся использовать ...
Он имеет ту же концепцию, и, как правило, мне не нужно было далеко ходить за обоими, поскольку компилятор позаботится обо всем остальном, если что-то выйдет из формата.
Теперь нам нужен класс, который может хранить извлеченные данные:
Прежде всего, мы собираемся добавить этот крутой итератор, который я давно использую для перебора совпадений (не могу вспомнить автора) :
MarkableTextView:
Наконец, стилизация, вот очень простой стилист, который я сделал для этого ответа:
А вот как
Markable
выглядит класс, содержащий определения:Все, что нам сейчас нужно, это ссылка на строку, и в основном она должна выглядеть так:
Убедитесь в том , чтобы обернуть тег с
CDATA Section
и бежать"
с\
.Я сделал это как модульное решение, позволяющее обрабатывать части текста различными способами без необходимости вставлять ненужный код.
источник
Я сделал, как сказал Энди Бут, но у меня также был диапазон, который можно было щелкнуть, и это не сработало из-за порядка
setSpans
вызова. Итак, вы должны сначала вызвать,spannable.setSpan(clickableSpanand...
затем,spannable.setSpan(new ForegroundColorSpan...
чтобы получить цвет в TextViewисточник
Я сделал эту небольшую функцию, просто передайте ваш текст в цвет, начальный и конечный индексы того, что вы хотите раскрасить для этого текста, и сам цвет
Котлин
использование
источник
С функцией расширения Kotlin общего назначения это выглядело бы так:
источник
Использовать escape-символы + Html.fromHtml ()
Как сохранить строку в папке строковых ресурсов
Как показать в TextView?
Бонус:
Строка на выходе выглядит так
источник
Вдохновленный ответом Алехандро Х. Круза выше .
Его функция работает только для одного совпадения подстроки, я обновил его метод, чтобы использовать Regex, и должен обновлять цвета для всех совпадений:
источник
Один из способов - разделить
myTextView
на несколько отдельныхTextViews
, одна из которых предназначена только для телефонного кода. Тогда управлять цветом этого конкретного объектаTextView
довольно просто.источник