Android Html.fromHtml(String) не работает для <font color = '#'> text</font>

Я пытаюсь добавить строки с разными цветами в свой TextView, используя теги html.

По какой-то причине

    Html.fromHtml("<font color='#145A14'>text</font>");

не будет отображаться в TextView.

Ответ 1

Html.fromHtml("<font color='#145A14'>text</font>");

Вместо вышеуказанного используйте следующие

Html.fromHtml("<![CDATA[<font color='#145A14'>text</font>]]>");

Это сработало для меня, и я уверен, что он также будет работать для вас.

Сообщите мне в случае каких-либо проблем.

Ответ 2

Мой ответ предполагает догадки о вашем коде, но здесь говорится:

Когда вы используете тег шрифта: НЕ включайте альфа-канал, чтобы ваша шестнадцатеричная строка выглядела как "# ff123456". Если вы используете Integer.toHexString(), в этом результате вы получите альфа-канал.

Он работал, когда я использовал подстроку (2) в моей шестнадцатеричной строке из rescource.

Подводя итог:

text.setText(Html.fromHtml("<font color='#123456'>text</font>"));

будет работать, но:

text.setText(Html.fromHtml("<font color='#ff123456'>text</font>"));

не будет!

Ответ 3

Обязательно отключите любые модификаторы, например:

android:textAllCaps="true"

Ответ 4

Метод fromHtml чрезвычайно ограничен с точки зрения поддерживаемых HTML-тегов, а шрифт не является одним из них. См. http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html для неофициального списка. Я сделал некоторые исследования по этому самому, и я обнаружил, что fromHtml основан на неясном и плохо документированном механизме рендеринга.

Ответ 5

Я использую этот код

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

Ответ 6

Это похоже на очень темный цвет, вы уверены, что ваш экран способен отображать такие цвета, чтобы вы могли отличить их от черного? Фрагмент кода выглядит хорошо, я много раз пробовал аналогичный код, и он работал как шарм. Попробуйте несколько ярче, т.е. # Ff0000 (красный), чтобы убедиться, что он работает:

TextView text = ... // find or instantinate your text view.
text.setText(Html.fromHtml("<font color='#ff0000'>text</font>"));

Ответ 7

textView.setText(Html.fromHtml("<font color='blue'>text</font>"));

Ответ 8

Убедитесь, что значение RGB CAPITALIZED. Android может понять # 00FF00, но не # 00ff00.

Ответ 9

попробуйте это, и он должен работать

 textView.setText(Html.fromHtml("<font color=\"#145A14\">text</font>"));

Ответ 10

Да, я согласен, иногда это не работает.

В качестве альтернативы я использую в xml для Textview:

android:textColorLink="yourColor"

работает как шарм;)

Ответ 11

txt_description1.setText(Html.fromHtml("<font color='rgb'>"+str_description1+"</font>"));

Если вам не нужен один статический цвет и вы хотите напрямую отразить его в редакторе, вы можете использовать "rgb". Он будет отображать точный цвет, который вы установили в редакторе, просто установите в textview и concat его значение textview. И вы все готовы пойти.

Ответ 12

попробуй это

textView.setText(Html.fromHtml( "текст"));

не используйте одинарные кавычки при предоставлении значения атрибуту color. Работал для меня!