Android中TextView文字設置不一樣的顏色

在項目的過程當中會遇到在一行文字中,部分功能須要不一樣的文字顏色來展現,下面介紹兩種方式實現: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

這裏寫圖片描述
相關文章
相關標籤/搜索