目錄
一、使用HTML 、strings.xml?輔助完成
二、SpannableStringBuilder 來實現
????????我們都會遇到UI給的效果圖中,一段文字,卻用不同的顏色顯示關鍵字以突出重點。我們平常用到都是使用TextView設置textColor就可以了,如何設置多種顏色呢,有兩種方法:
????????比如說我們想要實現以下效果的一段文字:
????????1、天氣不錯,適合露營
????????2、這里有一條河流,也可以去釣魚
我們可以把這段文字分成4個部分,分別是 “1、天氣不錯,適合”,“露營”,“2、這里有一條河流,也可以去”,“釣魚”
一、使用HTML 、strings.xml?輔助完成
? ? ? ? 1、首先在 strings.xml 文件中添加:
<string name="black_red"><Data><![CDATA[<font color="#000000">%1$s</font><font color="#ff0000">%2$s</font><font color="#000000">%3$s</font><font color="#ff0000">%4$s</font>]]></Data></string>
? ? ? 2、在Activity中給需要設置多種顏色的TextView設置如下代碼:
textView.setText(Html.fromHtml(context.getResources().getString(R.string.black_red,“1、天氣不錯,適合”,“露營<br>”,“2、這里有一條河流,也可以去”,“釣魚”)));
? ? ? ? 注:<br> 只是用來換行?
二、SpannableStringBuilder 來實現
? ? ? ? 首先,需要把這段文字聲明成一個字符串:
String content= "1、天氣不錯,適合露營\n2、這里有一條河流,也可以去釣魚"
? ? ? ? ?注:\n 只是用來換行文章來源:http://www.zghlxwxcb.cn/news/detail-597080.html
SpannableStringBuilder builder=new SpannableStringBuilder(content);
ForegroundColorSpan buleSpan1 = new ForegroundColorSpan(Color.parseColor("#ff0000"));
ForegroundColorSpan buleSpan2 = new ForegroundColorSpan(Color.parseColor("#ff0000"));
/**
* start:需要替換顏色的字符串的起始位置(從0開始) end:結束位置
*/
builder.setSpan(buleSpan1, 9, 10, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
builder.setSpan(buleSpan2, 26, 27, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
注:始末下表數的填寫和 Spannable.SPAN_INCLUSIVE_INCLUSIVE 有關,可以選擇是否包含這兩個下標的字符。文章來源地址http://www.zghlxwxcb.cn/news/detail-597080.html
到了這里,關于android 中一段文字設置不同顏色的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!