SpannableStringBuilder設定字串不同顏色和大小
阿新 • • 發佈:2019-01-29
一、背景介紹
在開發中產品會提出各種文字顏色大小各不相同的文案拼接在一起,比如 ,可以看到‘馬上下單’文字大小較大、字型顏色黑色,而’(立享200元優惠)‘字型大小較小,字型顏色紅色。當然 我們可以用不同的多個TextView來實現,對於每個TextView設定不同的字型風格以滿足需求,但不好的地方顯而易見。
我們可以使用SpannableString、SpannableStringBuilder進行拼接實現需求,SpannableStringBuilder可以用來設定不同的Span,這些Span便是用於實現Rich Text,比如粗體,斜體,前景色,背景色,字型大小,字型風格等等
二、實現效果
- String beforeText = "馬上下單";
- String afterText = "(立享200元優惠)";
- int beforeColor = "#000000";
- int afterColor = "#ff0000";
- int beforeSize = 20;
- int afterSize = 15;
- SpannableStringBuilder builder = new SpannableStringBuilder(beforeText); //建立SpannableStringBuilder,並新增前面文案
-
builder.setSpan(new
- builder.setSpan(new AbsoluteSizeSpan(beforeSize, true), 0, beforeText.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE); //設定前面的字型大小
- builder.append(afterText); //追加後面文案
-
builder.setSpan(new
- builder.setSpan(new AbsoluteSizeSpan(afterSize, true), beforeText.length(), builder.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);//設定後面的字型大小
- tv.setText(builder);