文本视图上的颜色和样式操作



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

String s="123 45678 91011122314 1516";

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

textview.setText(stylemystring(s));

我希望"123"是粗体和红色,45678是斜体和蓝色,也是如此

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

感谢

这样的东西应该可以工作:

    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);

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

我认为您必须将其拆分为不同的字符串才能实现这一点。

看看这个链接

我想它符合你的要求。

最新更新