添加到 spannable 的 span 的优先级会影响它在 TextView 中的外观。当我们将两个嵌套的字符样式添加到如下所示的跨度时
SpannableStringBuilder sp = new SpannableStringBuilder();
String blue = "blue";
String red = "red";
sp.append(blue);
sp.append(red);
sp.append(blue);
sp.setSpan(new ForegroundColorSpan(Color.RED), blue, 2*blue, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
sp.setSpan(new ForegroundColorSpan(Color.BLUE), 0, sp.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
((TextView)findViewById(R.id.text_view)).setText(sp);
添加字符样式的顺序对文本的外观很重要。Android 通过 Spanned.SPAN_PRIORITY 标志来处理跨度的优先级。但是当我们使用 Html.fromHtml() 时,优先级不在我们手中。那么我可以更改 Html.fromHtmel 输出的跨度优先级,还是可以从中创建新的跨度并制定新的跨度优先级;