Html Контент с цветом rgb не отображается в android, но в ios (apple) работает отлично - PullRequest
3 голосов
/ 06 февраля 2020

Это прекрасно работает

val htmlContent = "<p><span style=\"background-color: #008080;\">Heloo This is new <span style=\"color: #0000ff;\">document</span>&nbsp; <span style=\"background-color: #ffffff;\">&nbsp;TEXTT HHHH<strong>Hhhhhhhh</strong>hhhhhhhhhhhhh</span></span></p>\n" +
                            "<h1><span style=\"background-color: #008080;\"><span style=\"background-color: #ffffff;\">TEst dfsdf&nbsp;</span></span></h1>"

Но когда я пытаюсь установить это ниже Html контент не работает в android, но в ios работает отлично

<p style="text-align:left;"></p>
<p style="text-align:justify;"><span style="color: rgb(250,197,28);background-color: rgb(255,255,255);font-size: 14px;font-family: Open Sans;"><strong>Yellow </strong></span><span style="color: rgb(0,0,0);background-color: rgb(255,255,255);font-size: 14px;font-family: Open Sans;"><strong>Ipsum</strong></span> <span style="color: rgb(0,0,0);background-color: rgb(255,255,255);font-size: 24px;font-family: Open Sans;">is simply </span><span style="color: rgb(209,72,65);background-color: rgb(255,255,255);font-size: 24px;font-family: Open Sans;">Red</span><span style="color: rgb(209,72,65);background-color: rgb(255,255,255);font-size: 14px;font-family: Open Sans;"> </span><span style="color: rgb(0,0,0);background-color: rgb(255,255,255);font-size: 14px;font-family: Open Sans;">text </span><span style="color: rgb(65,168,95);background-color: rgb(255,255,255);font-size: 14px;font-family: Open Sans;">greenthe </span><span style="color: rgb(0,0,0);background-color: rgb(255,255,255);font-size: 14px;font-family: Open Sans;">printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</span></p>
<p style="text-align:left;"><br>&nbsp;</p>

Kotlin код

descriptionTextView.text = Html.fromHtml(
                    htmlContent, Html.FROM_HTML_MODE_LEGACY)

Ответы [ 3 ]

2 голосов
/ 10 февраля 2020

Вы должны знать, что все HTML теги и атрибуты не поддерживаются android TextView и существуют некоторые ограничения. Для получения дополнительной информации, пожалуйста, посмотрите на следующие вопросы:
1. Какие HTML теги поддерживаются Android TextView?
2. Android textview html тег размера шрифта

В вашем случае следующие атрибуты не поддерживаются:
1. выравнивание текста
2. размер шрифта
3. font-family
, а также, если необходимо установить цвет, значение rgb(int, int, int) также не поддерживается.

Решение:
1. Атрибут text-align поддерживает только значения start, end и center.
2. Вы можете использовать <small> тег для меньшего размера шрифта или <big> тег для большего размера шрифта.
3. Вы можете использовать тег <font> и атрибут face, чтобы установить шрифт.
4. Используйте шестнадцатеричный код цвета (например, # FF0000) вместо кода цвета rgb (например, rgb (255, 0, 0))
Важно: Если в html имеется более одного атрибута тег, разделите их с ;[Space] вместо ;. Посмотрите на следующие примеры:

Этот пример не работает

<span style="color: #ff0000;background-color: #ffffff;">
    RED
</span>


, но этот работает

<span style="color: #ff0000; background-color: #ffffff;">
    RED
</span>
1 голос
/ 11 февраля 2020

Android не поддерживает все теги HTML.

Зависит от версии HTML на устройстве Android. Что касается вывода тестера, вы можете использовать веб-просмотр для получения желаемого результата

. Вы можете обратиться к этому блогу , чтобы узнать, какие теги поддерживаются Android

0 голосов
/ 07 февраля 2020

Вы можете попробовать в WebView загрузить этот html текст

 val encodedHtml: String = Base64.encodeToString(htmlContent.toByteArray(), Base64.NO_PADDING)
 descriptionWebView.loadData(encodedHtml, "text/html; charset=utf-8", "base64");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...