Android實(shí)現(xiàn)TextView文字設(shè)置不同顏色效果
在項(xiàng)目的過(guò)程中會(huì)遇到在一行文字中,部分功能需要不同的文字顏色來(lái)展示,下面介紹兩種方式實(shí)現(xiàn):
效果圖:

方式一:
用SpannableStringBuilder來(lái)實(shí)現(xiàn):
TextView tv = (TextView) findViewById(R.id.tv);String content = "只會(huì)玩戰(zhàn)士回復(fù)冷云他大叔:啊哈哈哈或";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);
其中,”只會(huì)玩戰(zhàn)士回復(fù)冷云他大叔:有錢(qián)任性” 為你要改變的文本。setSpan方法有四個(gè)參數(shù):ForegroundColorSpan是為文本設(shè)置前景色,也就是文字顏色。如果要為文字添加背景顏色,可替換為BackgroundColorSpan。0為文本顏色改變的起始位置,5為文本顏色改變的結(jié)束位置。
最后一個(gè)參數(shù)為布爾型,可以傳入以下四種:
Spanned.SPAN_INCLUSIVE_EXCLUSIVE 從起始下標(biāo)到終了下標(biāo),包括起始下標(biāo) ;Spanned.SPAN_INCLUSIVE_INCLUSIVE 從起始下標(biāo)到終了下標(biāo),同時(shí)包括起始下標(biāo)和終了下標(biāo) ;Spanned.SPAN_EXCLUSIVE_EXCLUSIVE 從起始下標(biāo)到終了下標(biāo),但都不包括起始下標(biāo)和終了下標(biāo) ;Spanned.SPAN_EXCLUSIVE_INCLUSIVE 從起始下標(biāo)到終了下標(biāo),包括終了下標(biāo)。
方式二:
用HTML的方式實(shí)現(xiàn):
TextView tv=(TextView)findViewById(R.id.tv);String str="<font color='#4d8ade'>只會(huì)玩戰(zhàn)士</font>回復(fù)<font color='#4d8ade'>冷云他大叔</font>:啊哈哈哈或";tv.setTextSize(15);tv.setText(Html.fromHtml(str));
到這里就結(jié)束啦
評(píng)論
圖片
表情
