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.
5 réponses
j'ai remarqué que cet article:
affiche
(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.
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)
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
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));
}