String s="123 45678 91011122314 1516";
现在我的问题是我想这么说
textview.setText(stylemystring(s));
我希望'123'为粗体和红色,45678为斜体和蓝色,所以
我觉得在设计这些东西时很有问题,有html格式的解决方案,但问题是应该是红色或蓝色的文本大小是动态的,所以我需要更灵活的东西。
感谢
答案 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)