Я пытаюсь добавить строки с разными цветами в свой TextView, используя теги html.
По какой-то причине
Html.fromHtml("<font color='#145A14'>text</font>");
не будет отображаться в TextView.
Я пытаюсь добавить строки с разными цветами в свой TextView, используя теги html.
По какой-то причине
Html.fromHtml("<font color='#145A14'>text</font>");
не будет отображаться в TextView.
Html.fromHtml("<font color='#145A14'>text</font>");
Вместо вышеуказанного используйте следующие
Html.fromHtml("<![CDATA[<font color='#145A14'>text</font>]]>");
Это сработало для меня, и я уверен, что он также будет работать для вас.
Сообщите мне в случае каких-либо проблем.
Мой ответ предполагает догадки о вашем коде, но здесь говорится:
Когда вы используете тег шрифта: НЕ включайте альфа-канал, чтобы ваша шестнадцатеричная строка выглядела как "# ff123456". Если вы используете Integer.toHexString(), в этом результате вы получите альфа-канал.
Он работал, когда я использовал подстроку (2) в моей шестнадцатеричной строке из rescource.
Подводя итог:
text.setText(Html.fromHtml("<font color='#123456'>text</font>"));
будет работать, но:
text.setText(Html.fromHtml("<font color='#ff123456'>text</font>"));
не будет!
Обязательно отключите любые модификаторы, например:
android:textAllCaps="true"
Метод fromHtml чрезвычайно ограничен с точки зрения поддерживаемых HTML-тегов, а шрифт не является одним из них. См. http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html для неофициального списка. Я сделал некоторые исследования по этому самому, и я обнаружил, что fromHtml основан на неясном и плохо документированном механизме рендеринга.
Я использую этот код
Html.fromHtml(convertToHtml("<font color='#145A14'>text</font>"));
public String convertToHtml(String htmlString) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("<![CDATA[");
stringBuilder.append(htmlString);
stringBuilder.append("]]>");
return stringBuilder.toString();
}
Это похоже на очень темный цвет, вы уверены, что ваш экран способен отображать такие цвета, чтобы вы могли отличить их от черного? Фрагмент кода выглядит хорошо, я много раз пробовал аналогичный код, и он работал как шарм. Попробуйте несколько ярче, т.е. # Ff0000 (красный), чтобы убедиться, что он работает:
TextView text = ... // find or instantinate your text view.
text.setText(Html.fromHtml("<font color='#ff0000'>text</font>"));
textView.setText(Html.fromHtml("<font color='blue'>text</font>"));
Убедитесь, что значение RGB CAPITALIZED. Android может понять # 00FF00, но не # 00ff00.
попробуйте это, и он должен работать
textView.setText(Html.fromHtml("<font color=\"#145A14\">text</font>"));
Да, я согласен, иногда это не работает.
В качестве альтернативы я использую в xml для Textview:
android:textColorLink="yourColor"
работает как шарм;)
txt_description1.setText(Html.fromHtml("<font color='rgb'>"+str_description1+"</font>"));
Если вам не нужен один статический цвет и вы хотите напрямую отразить его в редакторе, вы можете использовать "rgb". Он будет отображать точный цвет, который вы установили в редакторе, просто установите в textview
и concat
его значение textview.
И вы все готовы пойти.
попробуй это
textView.setText(Html.fromHtml( "текст"));
не используйте одинарные кавычки при предоставлении значения атрибуту color. Работал для меня!