2014-04-04 28 views
5

Desidero impostare un carattere personalizzato per una parola che viene visualizzata in una stringa qualsiasi.Come impostare il carattere personalizzato per la parola in un testo TextView

Es: Hai @abc come stai? , Ciao mio caro amico, dove hai @abc

Negli esempi sopra, devo applicare caratteri personalizzati per "abc". Ho provato con la classe Spannable, ma non riesco a ottenerlo.

final TextView txtComments = (TextView)view.findViewById(R.id.tv_comments); 
SpannableStringBuilder SS = new SpannableStringBuilder(alcomments.get(i)); 
SS.setSpan (new CustomTypefaceSpan("", tf), 0, SS.length(),Spanned.SPAN_EXCLUSIVE_INCLUSIVE); 
txtComments.setText(SS); 

Ma sta interessando l'intera stringa. Per favore guidami come raggiungerlo.

+0

scusa il mio errore, ho frainteso la tua domanda. – InnocentKiller

+0

Puoi utilizzare la stringa spunibile http://stackoverflow.com/questions/15408225/text-with-custom-font-and-bold-style e questo http://stackoverflow.com/questions/16335178/different-size-of -strings-nella-stessa-textview/16335416 # 16335416 – Raghunandan

+0

Si prega di controllare questo [risposta] (http://stackoverflow.com/questions/6612316/how-set-spannable-object-font-with-custom-font) –

risposta

0

è possibile gestirlo utilizzando html o impostare lo stile del carattere personalizzato in textview.

1) se questo scenario è in rari casi poi andare con il testo insieme html come questo,

TextView txtComments = (TextView)view.findViewById(R.id.tv_comments); 
txtComments.setText(Html.fromHtml("Hi<font color=""#FF0000"">abc</font>")); 

altro set di carattere personalizzato come questo.

2)

Typeface type = Typeface.createFromAsset(getAssets(),"fonts/Kokila.ttf"); 
txtyour.setTypeface(type); 
1
First Part Not Bold BOLD rest not bold 

String normalBefore= "First Part Not Bold "; 
String normalBOLD= "BOLD "; 
String normalAfter= "rest not bold"; 
String finalString= normalBefore+normalBOLD+normalAfter; 
Spannable sb = new SpannableString(finalString); 
sb.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), finalString.indexOf(normalBOLD), normalBOLD.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //bold 
sb.setSpan(new AbsoluteSizeSpan(intSize), finalString.indexOf(normalBOLD), normalBOLD.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);//resize size 

di mostrare questo in TextView

textview.setText(sb); 

consultare: https://stackoverflow.com/a/10828482/2480911

Se si desidera applicare il testo personalizzato poi

// Giv e Percorso del carattere qui. Nel mio caso inserisco font nella cartella delle risorse.

String fontPath = "bankgthd.ttf"; 

    // text view label 


final TextView txtComments = (TextView)view.findViewById(R.id.tv_comments); 

    // Loading Font Face 


Typeface tf = Typeface.createFromAsset(getAssets(), fontPath); 

    // Applying font 


txtGhost.setTypeface(tf); 
+0

Basta cambiare il contenuto mentre copia e incolla, cosa intendi con 'Puoi farlo sia come @Rajesh suggerito o da questo. Non c'è bisogno di questa linea qui. – InnocentKiller

+0

@InnocentKiller. Stavo modificando la mia risposta e per errore ho premuto submit. :) Spero che questo funzioni per questa domanda. Funziona nel mio codice. –