Sistemas Operacionais

Exibir HTML dentro de um TextView

Como exibir HTML formatado em um TextView do Android com Html.fromHtml (HtmlCompat), links clicáveis e limitações, em Kotlin.

Capa: Exibir HTML dentro de um TextView

O TextView do Android consegue renderizar um subconjunto simples de HTML: negrito, itálico, links, listas básicas e cores de fonte.

Exemplo em Kotlin

import androidx.core.text.HtmlCompat
import android.text.method.LinkMovementMethod

val html = "<b>Olá</b>, visite o <a href='https://www.canalti.com.br'>Canal TI</a>!"
textView.text = HtmlCompat.fromHtml(html, HtmlCompat.FROM_HTML_MODE_LEGACY)
textView.movementMethod = LinkMovementMethod.getInstance()   // links clicáveis

Use HtmlCompat (AndroidX), que funciona em todas as versões. O método antigo Html.fromHtml(String) está depreciado.

Tags suportadas

<b>, <i>, <u>, <a>, <br>, <p>, <h1> a <h6>, <ul>/<li>, <font color>, <sub> e <sup>. CSS e tabelas não são suportados.

Quando usar a WebView

Para HTML complexo (CSS, imagens, tabelas, JavaScript), use uma WebView. Para texto simples formatado, o TextView basta.

Segurança

Se o HTML vem de terceiros, não o confie cegamente: links e imagens externas podem ser abusados. Considere sanitizar o conteúdo.

Mais artigos