在項目的過程當中會遇到在一行文字中,部分功能須要不一樣的文字顏色來展現,下面介紹兩種方式實現:bash
效果圖: 學習
方式一:ui
用SpannableStringBuilder來實現spa
TextView tv=(TextView)findViewById(R.id.tv);
String content = "只會玩戰士回覆冷雲他大叔:啊哈哈哈或";
SpannableStringBuilder builder = new SpannableStringBuilder(content);
//ForegroundColorSpan 爲文字前景色,BackgroundColorSpan爲文字背景色
ForegroundColorSpan buleSpan = new ForegroundColorSpan(Color.parseColor("#4d8ade"));
ForegroundColorSpan buleSpan1 = new ForegroundColorSpan(Color.parseColor("#4d8ade"));
ForegroundColorSpan blackSpan = new ForegroundColorSpan(Color.parseColor("#000000"));
builder.setSpan(buleSpan1, 0, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
builder.setSpan(blackSpan, 5, 7, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
builder.setSpan(buleSpan, 7, 12, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
builder.setSpan(blackSpan,12, 17, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(builder);
複製代碼
其中,」只會玩戰士回覆冷雲他大叔:有錢任性」 爲你要改變的文本。setSpan方法有四個參數,ForegroundColorSpan是爲文本設置前景色,也就是文字顏色。若是要爲文字添加背景顏色,可替換爲BackgroundColorSpan。0爲文本顏色改變的起始位置,5爲文本顏色改變的結束位置。最後一個參數爲布爾型,能夠傳入如下四種。 Spanned.SPAN_INCLUSIVE_EXCLUSIVE 從起始下標到終了下標,包括起始下標 Spanned.SPAN_INCLUSIVE_INCLUSIVE 從起始下標到終了下標,同時包括起始下標和終了下標 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE 從起始下標到終了下標,但都不包括起始下標和終了下標 Spanned.SPAN_EXCLUSIVE_INCLUSIVE 從起始下標到終了下標,包括終了下標3d
方式二:code
用HTML的方式實現:cdn
TextView tv=(TextView)findViewById(R.id.tv);
String str="<font color='#4d8ade'>只會玩戰士</font>回覆<font color='#4d8ade'>冷雲他大叔</font>:啊哈哈哈或";
tv.setTextSize(15);
tv.setText(Html.fromHtml(str));
複製代碼
如下是我的公衆號(longxuanzhigu),以後發佈的文章會同步到該公衆號,方便交流學習Android知識及分享我的愛好文章: blog