好吧,假设我们有这样的文本
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
关于android - Textview的颜色和样式操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6562217/