Android中TextView文字設置不同的顏色

在項目的過程中會遇到在一行文字中,部分功能需要不同的文字顏色來展示,下面介紹兩種方式實現:

效果圖:
這裏寫圖片描述

方式一:

用SpannableStringBuilder來實現

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 從起始下標到終了下標,包括終了下標

方式二:

用HTML的方式實現:

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知識及分享個人愛好文章:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章