web-dev-qa-db-fra.com

Quelles sont les balises HTML prises en charge par Android TextView?)

La classe TextView d'Android peut afficher du texte mis en forme via HTML.fromHtml (), comme expliqué par exemple ici: balises HTML dans la chaîne 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 pris en charge 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. Par exemple. <div align = "..."> ne fonctionne PAS pour moi avec Android 2.2

55
holgerm

Je l'ai cherché pour tous ceux qui le cherchaient.

Date: juillet 2017

Source: https://Android.googlesource.com/platform/frameworks/base/+/master/core/Java/Android/text/Html.Java

Html.fromHtml prend en charge:

  • p
  • ul
  • li
  • div
  • span
  • fort
  • b
  • em
  • citer
  • dfn
  • je
  • gros
  • petit
  • police de caractère
  • blockquote
  • tt
  • une
  • vous
  • del
  • s
  • la grève
  • souper
  • sous
  • h1
  • h2
  • h3
  • h4
  • h5
  • h6
  • img
  • br
26
Rags93

J'ai remarqué que cet article:

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

indique que <div> est pris en charge par Html.fromHtml (), mais ne montre pas la prise en charge de l'attribut "align".

(D'autres attributs pris en charge sont affichés pour les balises sur cette page.)

L'auteur dit avoir construit la référence en consultant le code dans les référentiels git pour Android.

Edit: Au fil du temps, il apparaît que la liste des tags pris en charge a changé. Voir ce post plus tard par exemple: http://www.grokkingandroid.com/Android-quick-tip-formatting-text-with-html-fromhtml/ .

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

25
gcbound

La meilleure approche consistant à utiliser les sections CData pour la chaîne dans le fichier strings.xml afin d’obtenir un affichage réel du contenu html dans TextView, l’extrait de code ci-dessous vous en donnera une bonne idée.

// dans le fichier string.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 la chaîne conserve les données de la balise HTML intactes même après le formatage du texte à l'aide de la méthode String.format. Ainsi, Html.fromHtml (str) fonctionne bien et vous verrez le texte en gras dans le message de bienvenue.

Sortie:

Bienvenue dans votre magasin d'applications musicales préféré. Connecté en tant que: nom d'utilisateur

9
Rajendhiran Easu

Comme il est constamment mis à jour, le meilleur moyen de savoir quelles balises HTML sont prises en charge dans Android est de vérifier le code source de Html.Java

4
Sid Go