Android Html.fromHtml(Stringa) non funziona per <font color=’#’>testo</font>

Sto cercando di aggiungere righe con colori diversi per il mio TextView utilizzando tag html.

Per qualsiasi motivo,

    Html.fromHtml("<font color='#145A14'>text</font>");

non mostra colorate in una TextView.

  • il problema è stato quando ho fatto una textView.append(“\n”+Html.formHtml(“<font color=’#145A14′>testo</font>”); il carattere \n creata la nuova linea, ma il formato html con il colore non è stato ricevuto dal textview — è, invece, il suo colore di default. Ho dovuto usare l’html linebreak per nuove linee: Html.fromHtml(“<font color=’#145A14′>testo</font><br>”);
  • Ti consiglio di scrivere il tuo commento come una risposta e di accettare la tua risposta. Renderà più facile per gli altri a vedere la soluzione.
  • Check out per esempio javatechig.com/2013/04/07/how-to-display-html-in-android-view
InformationsquelleAutor Chris | 2011-06-19

 

11 Replies
  1. 53
    Html.fromHtml("<font color='#145A14'>text</font>");

    Invece di cui sopra, si prega di utilizzare il seguente

    Html.fromHtml("<![CDATA[<font color='#145A14'>text</font>]]>");

    Questo ha funzionato per me e sono sicuro che funzionerà anche per te.

    Fammi sapere in caso di qualsiasi problema.

    • Alla fine, questo ha funzionato !!! Grazie
    • Questo ha funzionato per me. <p> e <br> i tag non vengono riconosciuti..
    • Non il suo lavoro per la variabile.
    • questo non funziona per me, sul materiale di progettazione le finestre di dialogo
    • È possibile ottenere la stringa in una stringa separata e, infine, può impostare da codice html. ex> strtoformat = “<font color=’#145A14′>nomevariabile</font>” e quindi in grado di caricare in formato Html.fromHtml(strtoformat); semplice 🙂
    • SÌ! Esattamente quello che serve! Vi ringrazio molto!
    • Lavoro del sistema operativo android 4.3, ma non funziona android os 5 e superiori.

  2. 23

    La mia risposta comporta congetture circa il tuo codice, ma qui va:

    Quando si utilizza il tag font: NON sono un canale alfa in modo che la tua stringa esadecimale sembra “#ff123456”. Se si utilizza Intero.toHexString(), si ha un canale alfa in quel risultato.

    Ha funzionato quando ho usato la funzione substring(2) sul mio stringa esadecimale da rescource.

    Per riassumere:

    text.setText(Html.fromHtml("<font color='#123456'>text</font>"));

    lavoro, ma:

    text.setText(Html.fromHtml("<font color='#ff123456'>text</font>"));

    non!

    • Perché non alpha lavoro?
    • questa risposta, tuttavia notare che non avrebbe funzionato anche per android:textAllCaps=”true”. Questo è probabilmente un qualche tipo di bug in Android.
  3. 21

    Assicurarsi di disattivare eventuali modificatori come:

    android:textAllCaps="true"
    • L’impostazione predefinita è true con le ultime appCompact, quindi è necessario impostare manualmente a false.
    • qual è la ragione dietro a questo?
    • Wow. Così che cosa…. Puoi spiegare perché?
  4. 5

    Il fromHtml metodo è estremamente limitato in termini di tag HTML che supporta, e il tipo di carattere non è uno di loro. Vedere http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html per una lista non ufficiale. Ho fatto qualche ricerca su questo stesso, e ho trovato che fromHtml è basato su un oscuro e scarsamente documentati motore di rendering.

    • L’elenco sembra includere sia il tag font e il colore attributo come quelli supportati da Html.fromHtml() metodo?
    • +1 per la fornitura di link con i tag supportati e i loro attributi.
  5. 4

    Io uso questo codice

    Html.fromHtml(convertToHtml("<font color='#145A14'>text</font>"));
    
    public String convertToHtml(String htmlString) {
    
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("<![CDATA[");
        stringBuilder.append(htmlString);
        stringBuilder.append("]]>");
        return stringBuilder.toString();
    }
    • La sua mostra tutti i tag html nel testo di qualsiasi Altra soluzione..???
  6. 2

    Che sembra un colore molto scuro, sei sicuro che il tuo schermo è in grado di visualizzare colori, in modo che si può distinguere da nero? Il frammento di codice sembra buono, ho provato un codice simile molte volte e che ha lavorato come un fascino. Provare con un po ‘ più luminoso, cioè #ff0000 (rosso), per verificare che funziona:

    TextView text = ... //find or instantinate your text view.
    text.setText(Html.fromHtml("<font color='#ff0000'>text</font>"));
  7. 1

    Assicurarsi che il valore RGB è in MAIUSCOLO. Android in grado di capire #00FF00 ma non #00ff00.

    • Capitale e piccoli entrambi,
  8. 1

    provare questo e dovrebbe opere

     textView.setText(Html.fromHtml("<font color=\"#145A14\">text</font>"));
    • Si dice di aver provato che nella descrizione.
    • Prima cosa : penso che la mia risposta è la stessa come gli altri, quindi hai votato giù per la mia risposta .Seconda cosa : si noti che ho usato \”#145A14\” e NON “#145A14′ .
  9. 1

    Sì sono d’accordo, non funziona a volte.

    Come alternativa, io uso in xml per Textview:

    android:textColorLink="yourColor"

    funziona come un fascino 😉

    • non funziona se il spanable ha convertito in stringa in qualche modo ha preso e ora per me capire. utilizzare una textView.setText(Html.fromHtml(“<font color=\”#145A14\”>testo</font>”)); e poi aggiungere e anteporre a qualsiasi altro stringhe all’interno del fromHTML brakets.
  10. 0
    txt_description1.setText(Html.fromHtml("<font color='rgb'>"+str_description1+"</font>"));

    Se non si desidera un singolo statico colore e desidera riflettere direttamente dall’editor, è possibile utilizzare “rgb”. Essa riflette il colore esatto quello che hai impostato nell’editor, basta impostare textview e concat con una textview valore.
    E si è tutto pronto per andare.

Lascia un commento