Quelles balises HTML sont supportées par Android TextView?

la classe TextView D'Android peut afficher du texte formaté via HTML.fromHtml () comme expliqué par exemple ici: balises HTML dans la chaîne de caractères pour TextView

la classe TextView ne peut traiter qu'un petit sous-ensemble de HTML, mais je ne sais pas quelles balises et attributs sont supportés et lesquels ne le sont pas. Le résumé donné ici: http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html ne semble pas être correct. E. g.

ne fonctionne pas pour moi en utilisant Android 2.2

49
demandé sur Community 2012-03-18 01:51:08

5 réponses

j'ai remarqué que cet article:

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

affiche

comme étant supportée par Html.fromHtml (), mais il ne montre pas de support pour l'attribut "align".

(les autres attributs supportés sont affichés pour les tags sur cette page.)

L'auteur dit qu'il a construit la référence en regardant le code dans les dépôts git pour Android.

Edit: Au fil du temps, il semble que la liste des tags pris en charge ait changé. Voir ce post plus loin par exemple: http://www.grokkingandroid.com/android-quick-tip-formatting-text-with-html-fromhtml / .

sur la base de ces deux articles, je suggère que l'examen du code source semble être le moyen le plus fiable pour obtenir les informations récentes.

24
répondu gcbound 2018-06-22 15:33:43

a cherché partout.

Date: Juillet 2017

Source: https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/text/Html.java

Html.fromhtml supporte:

  • p
  • ul
  • li
  • div
  • span
  • fort
  • b
  • em
  • citer
  • dfn
  • je
  • grand
  • petit
  • police
  • blockquote
  • tt
  • un
  • u
  • del
  • s
  • grève
  • sup
  • sub
  • h1
  • h2
  • h3
  • h4
  • h5
  • h6
  • img
  • br (merci à Carlo Conserva pour sa contribution)
19
répondu Rags93 2017-08-03 13:17:12

la meilleure approche pour utiliser les sections CData pour la chaîne dans les chaînes.fichier xml pour obtenir un affichage réel du contenu html dans le TextView l'extrait de code ci-dessous vous donnera une bonne idée.

//en chaîne.fichier xml

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

code Java

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

la section CData dans le texte de chaîne garde les données de balise html intactes même après le formatage du texte en utilisant Chaîne.méthode de mise en forme. So, Html.fromHtml (str) fonctionne bien et vous verrez le texte en gras dans le message de bienvenue.

sortie:

Bienvenue dans votre app store préféré. Connecté en tant que: nom d'utilisateur

6
répondu Rajendhiran Easu 2016-08-19 12:00:18

depuis qu'il est constamment mis à jour, la meilleure façon de suivre quelles balises HTML sont pris en charge dans Android est de vérifier le code source de Html.java

4
répondu Sid Go 2017-02-16 13:37:42
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));
     }

entrez la description du lien ici

4
répondu kksal55 2018-07-06 16:39:19