因此,我有一条消息,其中包含文本和SpannableStringBuilder,其初始化方式如下:
final SpannableStringBuilder builder = new SpannableStringBuilder(message.getMessage());默认情况下,我将字体设置为BOLD:
builder.setSpan(new StyleSpan(Typeface.BOLD), 0, messageText.length(), 0);但我的消息文本将被更改,例如:
您的问题:{问题}您的答案:{答案}
{question}和{answer}是将被替换为文本的对象,替换过程如下:
final TextObject question = objects.getQuestion();
spannable = new SpannableString(question.getText());
spannable.setSpan(new StyleSpan(Typeface.NORMAL), 0, spannable.length(), 0);
builder.replace(start, end, spannable);文本替换很好,但普通字体不适用于它,所以我有所有的文本加粗,但我需要这个部分是正常的
任何帮助都是非常感谢的
发布于 2015-08-26 14:35:51
您必须将该Spanned.SPAN_INCLUSIVE_INCLUSIVE添加为最后一个参数
spannable.setSpan(new StyleSpan(Typeface.NORMAL), 0, spannable.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);如果你想要一些粗体的部分和一些不粗体的部分,你必须具体说明是哪部分。setSpan方法的第二个和第三个参数负责此操作
https://stackoverflow.com/questions/32219514
复制相似问题