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並創建新的跨度優先級;