SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
08.04.2025

Usando Strings Formatadas em HTML a partir de XML em TextView

Resposta Rápida

Para inserir instantaneamente HTML em um TextView, use o seguinte código:

textView.setText(Html.fromHtml(getString(R.string.html_string), Html.FROM_HTML_MODE_LEGACY));

No arquivo strings.xml, adicione HTML utilizando CDATA:

<string name="html_string"><![CDATA[<b>Texto</b> em <i>itálico</i>]]></string>

O método Html.fromHtml() converte HTML em texto Spannable para seu TextView.

Tratando Caracteres Especiais em HTML

Às vezes, ao trabalhar com HTML, pode haver dificuldades:

  • Caracteres como ' (apóstrofo), " (aspas), & (e comercial) são considerados especiais e requerem escapamento.
  • Para exibir corretamente um e comercial, use &amp; para manter o código limpo.

Compatibilidade com Diferentes Versões do Android

As abordagens para lidar com HTML podem variar dependendo da versão do Android:

  • Para versões do Android anteriores ao N (API 24), bastava usar o método Html.fromHtml().
  • A partir do Android Nougat, você pode usar Markdown ou flags específicas para o método Html.fromHtml() para garantir elegância e precisão na renderização.
  • É essencial usar Build.VERSION.SDK_INT para verificar a versão da API do Android.

Classes e Atributos Personalizados

Crie uma subclasse de TextView para estender a funcionalidade:

public class HtmlTextView extends TextView {
    public HtmlTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.HtmlTextView);
        String htmlText = a.getString(R.styleable.HtmlTextView_htmlText);
        if (htmlText != null) {
            setText(Html.fromHtml(htmlText, Html.FROM_HTML_MODE_COMPACT));
        }
        a.recycle();
    }
}

Essa abordagem é muito mais elegante do que envolver uma Activity para formatar o TextView.

Descontinuando Métodos Obsoletos

Com cada atualização do Android, os desenvolvedores precisam fazer alterações em seu código.

  • Use HtmlCompat.fromHtml() da biblioteca AndroidX.
  • Certifique-se de que strings.xml esteja em conformidade com as diretrizes mais recentes do Android.

Visualização

Usar strings formatadas em HTML em XML para um TextView fica assim:

<TextView
    android:id="@+id/myTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/html_formatted_string" />

Elemento em strings.xml:

<string name="html_formatted_string">
<![CDATA[
    <b>Texto em negrito</b> e <i>Texto em itálico</i>.
]]>
</string>

Texto normal em XML: "Texto em negrito e Texto em itálico."

Texto na tela após a conversão: Texto em negrito e Texto em itálico.

Métodos e Técnicas Não Oficiais

Às vezes, métodos e técnicas úteis podem ser encontrados em fóruns comunitários ou rastreador de bugs. Esses podem ser verdadeiras surpresas para os desenvolvedores!

Bibliotecas de Terceiros como Assistência

Em casos onde os métodos embutidos não são suficientes:

  • Markwon é utilizado para exibir Markdown em TextView, como uma alternativa à formatação em HTML.
  • Bibliotecas como RichTextView facilitam o trabalho com HTML e Markdown.

Estilização Avançada de Texto

Estilize textos em TextView como se seu mordomo pessoal estivesse fazendo isso:

  • Use negrito, itálico, sublinhado e outros estilos diretamente em strings.xml.
  • Esqueça o getString() e use getText() para preservar todos os elementos estilísticos do seu texto.

TextView Personalizado – O Caminho Mais Curto para o Sucesso

Utilizar um TextView personalizado abre novas possibilidades para gerenciar a exibição de HTML e reduz a duplicação de código.

Recursos Úteis

  1. Recursos de String | Desenvolvedores Android — guia detalhado sobre recursos de string no desenvolvimento Android.
  2. android - Como exibir HTML em TextView? - Stack Overflow — uma comunidade onde profissionais ajudam a resolver problemas.
  3. Recursos de String | Desenvolvedores Android — detalhes sobre estilização de texto usando HTML no Android.
  4. XML no Android: Fundamentos e Diferentes Arquivos XML Usados no Android | Abhi Android — guia abrangente sobre XML no Android.
  5. Visão Geral dos Recursos de Aplicação | Desenvolvedores Android — guia sobre recursos em aplicativos Android.
  6. Home · codepath/android_guides wiki · GitHub — coleção de trechos de código e guias para desenvolvedores Android.

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!