有以下代码:
String s = message + "\n" + date;
Spannable f = Spannable.Factory.getInstance().newSpannable(s);
f.setSpan(new ForegroundColorSpan(Color.BLUE), 0, message.length(), 0);
f.setSpan(new ForegroundColorSpan(Color.RED), message.length() + 1, s.length(), 0);
textView.setText(f);
此代码适用于为textView设置不同的颜色。但我需要另一个功能 - 我希望“日期”具有较小的字体和斜体字体。我怎样才能做到这一点?
答案 0 :(得分:4)
检查
Different font size of strings in the same TextView
尝试以下
String title="My Custom Text!";
TextView tv = (TextView) findViewById(R.id.some_id);
SpannableString ss1= new SpannableString(title);
ss1.setSpan(new StyleSpan(Typeface.ITALIC), 0, ss1.length(), 0);
ss1.setSpan(new RelativeSizeSpan(2f), 0, ss1.length, 0);
tv.setText(ss1);
更多样式
http://www.chrisumbel.com/article/android_textview_rich_text_spannablestring
答案 1 :(得分:0)
您可以使用Html.fromHtml(“您的html字符串”),在HTML中执行您想要的任何样式,然后在textview中显示它,如下所示:
Spanned htmlText = Html.fromHtml(getString(R.string.yourStringResource));
yourTextView.setText(htmlText, TextView.BufferType.SPANNABLE);
XML string.xml必须声明如下所示的字符串:
<string name="yourStringResource"><![CDATA[BLA BLA BLA BLA <br/> BLABA <font color="blue" size="6">COLORED HTML</font>]]></string>
希望这有帮助。
问候!
答案 2 :(得分:0)
您可以使用HTML标记,如下所示:
String s = "<html>" + message + "<br /><i><small>" + date + "</i></small></html>";
答案 3 :(得分:0)
是的,绝对可能。您只需添加另一个 Span :
即可Spannable.setSpan(new StyleSpan(Typeface.ITALIC), from, to, 0);
Spannable.setSpan(new RelativeSizeSpan(float size), from, to, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
在这种情况下,它是StyleSpan
到斜体和RelativeSizeSpan
。