我试图构造一个SpannableString,使其看起来像这样:
两个字符(m,s)应小于其余字符。
我试图将所有文本保存在一个SpannableString中,并且还尝试通过SpannableStringBuilder连接两个SpannableString。
一个Spannable的代码如下所示:
spannable.setSpan(new RelativeSizeSpan(0.75f), spannable.length() - 1, spannable.length(), 0);
但是,仅应用一种格式-使用SpannableStringBuilder时,仅“m”较小,而对于整个文本使用一个SpannableString时,仅“s”较小。
调试还显示,Spannables似乎仅保留一个RelativeSizeSpan实例,这意味着只能存在一种类型的Span。这是真实的还是预期的行为?
建议改为串联TextViews吗?
编辑:顺便说一句,由于性能原因(许多GC调用),我试图在此处删除HTML.fromHtml()调用。
最佳答案
如果您仍在寻找答案,我可能会提供解决方案。我有类似的问题。我使用TextUtils
来连接2 SpannableString
。
这是一些示例代码:
SpannableString span1 = new SpannableString("32m");
SpannableString span2 = new SpannableString("50s");
span1.setSpan(new RelativeSizeSpan(0.75f), 2, 3, 0);
span2.setSpan(new RelativeSizeSpan(0.75f), 2, 3, 0);
mTextView.setText(TextUtils.concat(span1," " ,span2));