我有一个文本视图,我想控制文本的样式。我的问题是我想要改变文本的一小部分的风格。例如,当用户执行某些操作时,文本的前三个字母变为红色。我知道如何为整篇文章做这件事。但不知道将样式仅应用于部分文本。
答案 0 :(得分:1)
您应该使用ForegroundColorSpan
试试这个
TextView textview = (TextView) findViewById(R.id.textview);
SpannableString text = new SpannableString("Your Text");
// make "Your" (characters 0 to 4) Red
text.setSpan(new ForegroundColorSpan(Color.RED), 0, 5, 0);
// make "Text" (characters 4 to 8) Blue
text.setSpan(new ForegroundColorSpan(Color.BLUE), 4, 8, 0);
// save our styled text into the Button
textview.setText(text, BufferType.SPANNABLE);
对于FontStyle,请使用StyleSpan作为参考StyleSpan
因此,使用可以在StyleSpan的帮助下使用自定义字体。
textview.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), start,
end, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
希望这会对你有所帮助。