2

有以下代码:

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 设置不同的颜色。但我需要另一个功能 - 我希望“日期”的字体和斜体字号更小。我怎样才能做到这一点?

4

4 回答 4

6

检查这个

同一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

于 2013-09-04T19:20:26.003 回答
0

您可以使用 Html.fromHtml("your html string") 在 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>

希望这可以帮助。

问候!

于 2013-09-04T19:07:26.487 回答
0

您可以使用 HTML 标签,如下所示:

String s = "<html>" + message + "<br /><i><small>" + date + "</i></small></html>";
于 2013-09-04T19:10:14.920 回答
0

是的,这是绝对可能的。您可以简单地添加另一个Span

Spannable.setSpan(new StyleSpan(Typeface.ITALIC), from, to, 0);
Spannable.setSpan(new RelativeSizeSpan(float size), from, to, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

在这种情况下,它的 aStyleSpan斜体和 a RelativeSizeSpan

于 2013-09-04T19:12:00.213 回答