2013-07-22 21 views
12

http://docs.fusioncharts.com/charts/contents/Styles/Font.htmlCome rendere stringhe XML evidenziate, sottolineate ecc.?

Ho provato questo, insieme a un sacco di cose ma non l'ho fatto. Ecco quello che voglio.

<string name="ss">Bold. Underlined. Italic. Big. Small</string> 

Voglio formattare un po 'della stringa. Dove è scritto in grassetto, voglio che sia audace ... e lo stesso per gli altri.

Ho provato molti tag ... ma non ha funzionato, e non ho trovato nulla su Google o SO.

so come farlo in un TextView, ma questo non è quello che voglio ...

Sto inviando una risorsa di testo per un'attività che lo mostra ... Se ho fatto con diverso viste di testo, dovrei creare molti di questi, uno nuovo per ogni volta che voglio testo in grassetto, e non è molto elegante.

C'è un modo per farlo nel file XML? o in qualche altro modo?

+0

Una parte della stringa deve avere una proprietà come grassetto o sottolineato o dimensioni maggiori ... solo una parte della stringa non l'intera stringa. –

risposta

3

exemple:

<string name="ss"><font size="15"><b>Parrainage</b></font><u>subscribe</u></string> 

b = et bold u = sottolineano ..... ecc

+3

Ho detto in particolare, questo non funziona. –

+1

Funziona con res/values ​​/ strings.XML, l'ho fatto mille volte. È diverso dai tag HTML. – MattMatt

+4

Devi usare getText (stringa id) invece di getString –

-4

in dimens scrittura file:

<dimen name="size_edittext">180dp</dimen> 

e nel layout xml o attività di chiamata it:

android:@dimen/ size_edittext 
+1

Questa non è una risposta utile. Elimina questo post. –

17

Prova a applicare il testo marcato nei tag CDATA. Per esempio:

<string name="ss"><![CDATA[<b>Bold.</b> <u>Underlined.</u> <i>Italic.</i> <big>Big.</big> <small>Small</small>]]></string> 

e quindi utilizzare Html.fromHtml ovunque hai intenzione di visualizzarla:

Html.fromHtml(getString(R.string.ss)) 
+0

Questo ha funzionato molto bene per me –

+4

Non funziona in Android M ... – Raghu

6

Questo problema è stato facendo impazzire per le età. È qualcosa di talmente semplice che vuoi solo farlo funzionare !!!

Comunque ho trovato una risposta qui a http://www.coderzheaven.com/2011/06/19/styling-text-in-android-through-xml/

La chiave è quello di caricare la risorsa come CharSequence utilizzando getResources().getText(R.string.xxxx) questo manterrà tutte le informazioni di stile e permetterà di utilizzare i tag di stile in linea. Il mio errore era usare getString() perché quando si carica la risorsa getString() la stringa perde tutte le informazioni sullo stile.

+1

Ricorda che se usi getText perdi la possibilità di usare segnaposti come% se% d – portfoliobuilder