【发布时间】:2011-12-12 08:42:01
【问题描述】:
我在string.xml 中定义了一个字符串
<string name="eventtitle">Title: %1$s </string>
使用 string.format 格式化。如何定义字符串以仅获取 Titel: as Bold.
提前感谢您的帮助
【问题讨论】:
标签: android
我在string.xml 中定义了一个字符串
<string name="eventtitle">Title: %1$s </string>
使用 string.format 格式化。如何定义字符串以仅获取 Titel: as Bold.
提前感谢您的帮助
【问题讨论】:
标签: android
实际上,许多答案都已过时。在自己研究之后,我发现最好的答案是@Wahib 的答案。这是改进的版本:
将字符串资源定义为:
<string name="styled_text">Hey, <b>this is bold</b> text</string>
像这样使用资源:
String text = getResources().getString(R.string.styled_text);
CharSequence styledText = HtmlCompat.fromHtml(text, HtmlCompat.FROM_HTML_MODE_LEGACY);
textview.setText(styledText);
结果如下:
【讨论】:
现在,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);
【讨论】:
现在,Android 合理地支持它。
how to add styling within a string这个问题我已经给出答案了
【讨论】:
你可以这样做,
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>
【讨论】:
Html.fromHtml() 现已弃用
您必须在显示 in 的 TextView 中设置字符串的样式。看到这个link
【讨论】:
您可以使用 HTML 标记,例如 "<b>BOLD</b> other text ..."。
请参阅this Google resource 了解更多信息。
【讨论】:
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);
【讨论】: