Какие теги HTML поддерживаются Android TextView?

Класс TextView в Android может отображать форматированный текст с помощью HTML.fromHtml(), как описано, например, здесь: HTML-теги в строке для TextView

Класс TextView может работать только с небольшим подмножеством HTML, но я не знаю, какие теги и атрибуты поддерживаются, а какие нет. Резюме, приведенное здесь: http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html, похоже, неверно. Например,

не работает для меня с использованием Android 2.2

5 ответов

Посмотрел его для всех, кто его ищет.

Дата: июль 2017

Источник: https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/text/Html.java

Html.fromHtml поддерживает:

  • п
  • уль
  • литий
  • ДИВ
  • пролет
  • сильный
  • б
  • Эм
  • цитировать
  • д.ф.н.
  • я
  • большой
  • маленький
  • шрифт
  • BLOCKQUOTE
  • тт
  • U
  • дель
  • s
  • наносить удар
  • вир
  • суб
  • h1
  • h2
  • h3
  • h4
  • h5
  • h6
  • IMG
  • уш

Я заметил, что эта статья:

https://web.archive.org/web/20171118200650/http://daniel-codes.blogspot.com/2011/04/html-in-textviews.html

перечисляет

как поддерживаемый Html.fromHtml(), но он не показывает поддержку атрибута "align".

(Другие поддерживаемые атрибуты показаны для тегов на этой странице.)

Автор говорит, что создал ссылку, посмотрев код в репозиториях git для Android.

Изменить: Со временем кажется, что список поддерживаемых тегов изменился. См. Этот пост позже, например: http://www.grokkingandroid.com/android-quick-tip-formatting-text-with-html-fromhtml/.

Основываясь на обеих этих статьях, я бы предположил, что изучение исходного кода представляется наиболее надежным способом получения последней информации.

Наилучший подход к использованию разделов CData для строки в файле strings.xml, чтобы получить фактическое отображение html-содержимого в TextView, приведенный ниже фрагмент кода, даст вам правильную идею.

// в файле string.xml

<string name="welcome_text"><![CDATA[<b>Welcome,</b> to the forthetyroprogrammers blog Logged in as:]]> %1$s.</string>

Java-код

String welcomStr=String.format(getString(R.string.welcome_text),username);
tvWelcomeUser.setText(Html.fromHtml(welcomStr));

Раздел CData в тексте строки сохраняет данные тега html без изменений даже после форматирования текста с использованием метода String.format. Итак, Html.fromHtml(str) работает нормально, и вы увидите жирный текст в приветственном сообщении.

Выход:

Добро пожаловать в ваш любимый музыкальный магазин приложений. Вы вошли как: имя пользователя

Поскольку он постоянно обновляется, лучший способ отследить, какие HTML-теги поддерживаются в Android, - это проверить исходный код Html.java.

if (  android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) 
     {
      tvDocument.setText(Html.fromHtml(bodyData,Html.FROM_HTML_MODE_LEGACY));
     } 
else { 
     tvDocument.setText(Html.fromHtml(bodyData));
     }

введите описание ссылки здесь

Другие вопросы по тегам