textview上的颜色和样式操作

时间:2011-07-03 10:02:15

标签: android string colors coding-style textview

好吧,假设我们有这样的文字

String s="123 45678 91011122314 1516";

现在我的问题是我想这么说

textview.setText(stylemystring(s));

我希望'123'为粗体和红色,45678为斜体和蓝色,所以

我觉得在设计这些东西时很有问题,有html格式的解决方案,但问题是应该是红色或蓝色的文本大小是动态的,所以我需要更灵活的东西。

感谢

2 个答案:

答案 0 :(得分:10)

这样的事情应该有效:

    SpannableStringBuilder text = new SpannableStringBuilder("123 45678 91011122314 1516");
    text.setSpan(new ForegroundColorSpan(Color.RED), 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    text.setSpan(new ForegroundColorSpan(Color.BLUE), 4, 9, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    text.setSpan(new StyleSpan(Typeface.BOLD), 4, 9, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textView.setText(text, TextView.BufferType.SPANNABLE);

您可以为String的不同部分添加不同的样式。 基于http://developer.android.com/resources/faq/commontasks.html#selectingtext

答案 1 :(得分:2)

我认为你必须用不同的字符串将它拆分才能达到目的。

查看this link

我认为它有你想要的东西。