4
添加到spannable中的跨度的优先级会影响TextView中的外观。 当我们添加两个嵌套字符样式到spannable像下面如何反转SpannableString中跨度的优先级
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输出的跨度优先级,还是可以从中创建新的spannable并创建新的跨度优先级;