android:字符串格式指定粗体

时间:2011-12-12 08:42:02

标签: android

我在string.xml中定义了一个字符串,如

<string name="eventtitle">Title: %1$s </string>

使用string.format格式化。如何定义字符串以仅获取 Titel:as Bold。

提前感谢您的帮助

7 个答案:

答案 0 :(得分:21)

你可以这样做,

textView.setText(Html.fromHtml("<b>Title</b>: Text"));

如果你有动态的文字..

要在Strings.xml中定义格式化,你可以这样做,

<string name="text1">This text uses <b>bold</b> and <i>italics</i> 
by using inline tags such as <b> within the string file.</string>

参见 This Link

答案 1 :(得分:7)

现在,Android得到了合理的支持。

您可以将xml中的字符串定义为<string name="text_to_show">Hey &lt;b>This is in bold&lt;/b>

然后在代码中,使用它转换为CharSequence,然后将其用于例如TextView

String text = getResources().getString(R.string.text-to_show);
CharSequence styledText = Html.fromHtml(text);
textview.setText(styledText);

答案 2 :(得分:5)

您可以使用"<b>BOLD</b> other text ..."等HTML标记 有关详细信息,请参阅this Google resource

答案 3 :(得分:2)

您必须在显示输入的TextView中设置字符串的样式。见link

答案 4 :(得分:0)

Typeface tfaerial=Typeface.createFromAsset(getAssets(),"fonts/aerial.ttf");
Typeface tfTradeGothicLight=Typeface.createFromAsset(getAssets(), "fonts/TradeGothic-Light.OTF");

String strt_title_desc=this.getResources().getString(R.string.eventtitle);

int upto=strt_title_desc.indexOf(":"); //您可以指定5

 if (strt_title_desc!=null)
    {
        aboutAuthTV.setTextColor(Color.BLACK);
        aboutAuthTV.setLineSpacing(1.2f, 1.5f);
        aboutAuthTV.setTextSize(23);
    SpannableString SS = new SpannableString(strt_title_desc);
    SS. setSpan ( new StyleSpan(tfTradeGothicLight.getStyle()), 0, upto,Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
    SS. setSpan ( new StyleSpan(tfaerial.getStyle()), upto, strt_dialog_desc.length(),Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
    yourtextView.setText(SS);
}

//这用于更改字体大小,样式和颜色

String str="<font size =\"20\"><B>Bold</B> <br/> Then Normal Text<br/>
                         <i>Then Italic</i> </font>" +
                       "<br/> <font color=\"green\" >this is simple sentence </font>" +
                       "<br/><br/><br/><br/><a>this is simple sentence</a>";
      Spanned strHtml= Html.fromHtml(str);

       TextView tv = (TextView)findViewById(R.id.textView);
       tv.setText(strHtml);

答案 5 :(得分:0)

实际上,许多答案已过时。经过我自己的研究,我发现最好的答案是@Wahib。这是改进的版本:

将字符串资源定义为:

<string name="styled_text">Hey, &lt;b>this is bold&lt;/b> text</string>

像这样使用资源:

String text = getResources().getString(R.string.styled_text);
CharSequence styledText = HtmlCompat.fromHtml(text, HtmlCompat.FROM_HTML_MODE_LEGACY);
textview.setText(styledText);

结果如下:

enter image description here

答案 6 :(得分:-1)

现在,Android得到了合理的支持。

我已经回答了这个how to add styling within a string