我试图构造一个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));

10-06 03:42