2013-06-06 18 views
6

Ho cercato a fondo su SO ma non ho ricevuto risposta alla mia domanda.TextView Android in BOLD e testo normale

voglio impostare un paragrafo, mi metterò in XML utilizzando

Il testo contiene Titolo e passaggi e testo normale. Voglio rendere il titolo e le fasi in grassetto e riposare nel testo normale.

Posso farlo utilizzando diversi, ma come posso farlo nella stessa TextView.

Intendo usare lo stesso TextView come posso impostare attributi diversi per frasi diverse?

+1

Vedere http://stackoverflow.com/a/6159538/1051147 –

risposta

12

nelle stringhe di file

<string name="your_text"> 
<![CDATA[ 
<p> <b>Title</b> </p> 
<p><b><i>Step 1</i></b><p>step1 content content content content content content</p></p> 
<p><b><i>Step 2</i></b><p>step2 content content content content content content content</p></p> 
]]> 
</string> 

Poi nella vostra attività

 TextView tv=(TextView)findViewById(R.id.textView1); 
     tv.setText(Html.fromHtml(getString(R.string.your_text))); 

E uscita

enter image description here

+0

In questo caso utilizziamo direttamente i valori in String, quindi XML ha coinvolto na? –

+0

Change Unit del all'unità \ 's –

+0

provato questo, ma i suoi spazi non considerando: x 78
____ Anche nei commenti i suoi spazi non prendono ... ci sono 3 spazi prima 43 e 4 –

2

È possibile formattare come si farebbe in HTML: chiamiamolo questo custom_text

<b>Your title here</b> 
This is the non-bolded stuff. 

e quindi caricare il testo utilizzando la classe Html:

mTextView.setText(Html.fromHtml(getString(R.string.custom_text))); 

Questo creerà una stringa spannable e impostare sul TextView.

+0

in qualsiasi altro modo senza utilizzare HTML bro? –

+0

Possiamo farlo direttamente in XML anziché in String.xml? –

1

TextView s supporto SpannableStrings. È possibile rendere la vostra abitudine String o formattare la stringa in HTML e quindi impostare con tv.setText(Html.fromHtml(yourString));

19

Uso uno Spannable String

TextView tv = (TextView) findViewById(R.id.tv); 
String steps = "Hello Everyone"; 
String title="Bold Please!"; 

SpannableString ss1= new SpannableString(title); 
ss1.setSpan(new StyleSpan(Typeface.BOLD), 0, ss1.length(), 0); 
tv.append(ss1); 
tv.append("\n"); 
tv.append(steps); 

enter image description here

Per ulteriori styling controllare il link @http://blog.stylingandroid.com/archives/177

+0

[Ecco lo Screenshot] (http://image.prntscr.com/image/bbe1b95ceedf437eae54a751986c8641.png) Grazie, questo funziona bene per me! Come puoi vedere, potrei impostare BOLD per "Titolo", "Autore" e "Tag". –

2

Si prega di inserire questa stringa per RES-> string.xml

<string name="your_html"> 
    <![CDATA[p><b>This is bold text</b> rementing is simple text 

    ]]> 
    </string> 

Ora può essere usato ogni volta che devi richiedere questa cosa.

tv.setText(Html.fromHtml(getString(R.string.your_html))); 

È il migliore e il fascino del lavoro.

+0

Ciao, ho provato a fare tutto in modo che stringa Bold and Italic in Android M, non funziona. – Raghu

0

Invece, utilizzare questo:

prima dichiarare TextView

TextView tv1 = (TextView) getActivity().findViewById(R.id.t1);

Poi set è il testo per la stringa che si desidera

tv1.setText(Html.fromHtml(getString(R.string.my_text)));

Infine, utilizzare il set di caratteri per la tua visualizzazione testo

tv1.setTypeface(null, Typeface.BOLD);

E, avete finito.

Problemi correlati