2014-04-04 8 views
5

Ich möchte eine benutzerdefinierte Schriftart für ein Wort festlegen, das an einer beliebigen Stelle in einer Zeichenfolge angezeigt wird.So legen Sie eine benutzerdefinierte Schriftart für ein Wort in einem TextView-Text fest

Beispiel: Hai @abc wie geht es Ihnen? Hallo mein lieber Freund, wo Sie @abc

In den obigen Beispielen muss ich benutzerdefinierte Schriftart für "abc" anwenden. Ich habe versucht mit spannable Klasse, aber ich bin nicht in der Lage, es zu bekommen.

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); 

Aber es betrifft die gesamte Zeichenfolge. Bitte führen Sie mich, wie Sie es erreichen können.

+0

Entschuldigung mein Fehler, ich missverstanden Ihre Frage. – InnocentKiller

+0

Sie können spannbare Zeichenfolge http://stackoverflow.com/questions/15408225/text-with-custom-font-and-bold-style und diese http://stackoverflow.com/questions/16335178/different-size-of verwenden -strings-in-the-same-textview/16335416 # 16335416 – Raghunandan

+0

Bitte überprüfen Sie diese [Antwort] (http://stackoverflow.com/questions/6612316/how-set-spannable-object-font-with-custom-font) –

Antwort

0

können Sie dies mithilfe von HTML verwalten oder benutzerdefinierte Schriftart in Textansicht festlegen.

1), wenn dieses Szenario in seltenen Fällen ist dann mit einem Satz von HTML-Text so gehen,

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

sonst gesetzt benutzerdefinierte Schriftart wie diese.

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 

zeigen dies in Textview

textview.setText(sb); 

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

Wenn Sie benutzerdefinierte Text anwenden möchten dann

// Giv e Schriftpfad hier. In meinem Fall habe ich die Schrift in den Asset-Ordner gelegt.

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

Ändern Sie einfach den Inhalt beim Kopieren und Einfügen, was meinst du mit 'Sie können dies entweder als @Rajesh vorgeschlagen oder dadurch. 'Keine Notwendigkeit dieser Zeile hier. – InnocentKiller

+0

@InnocentKiller. Ich habe meine Antwort bearbeitet und versehentlich auf submit gedrückt. :) Hoffe das wird für diese Frage funktionieren. Es funktioniert in meinem Code. –