一行文字有兩種顏色

String str1 = "今天<font color='#FF0000'>天氣不錯</font>";
    tv1.setText(Html.fromHtml(str1));
第二個TextView將紅色字體變小

String str2 = "今天<font color='#FF0000'><small>天氣不錯</small></font>";
    tv2.setText(Html.fromHtml(str2));
第三個TextView將紅色字體變大:


String str3 = "今天<font color='#FF0000'><big>天氣不錯</big></font>";
    tv3.setText(Html.fromHtml(str3));
使用系統自帶的SpannableString來實現

SpannableString spannableString = new SpannableString("今天天氣不錯");
    spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#FF0000")), 2, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        tv5.setText(spannableString);
setSpan方法有四個參數,ForegroundColorSpan是爲文本設置前景色,也就是文字顏色。如果要爲文字添加背景顏色,可替換爲BackgroundColorSpan。第二個參數:2爲文本顏色改變的起始位置,spannableString.length()爲文本顏色改變的結束位置。最後一個參數爲布爾型,可以傳入以下四種:
Spanned.SPAN_INCLUSIVE_EXCLUSIVE 從起始下標到終止下標,包括起始下標
Spanned.SPAN_INCLUSIVE_INCLUSIVE 從起始下標到終止下標,同時包括起始下標和終止下標
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE 從起始下標到終止下標,但都不包括起始下標和終止下標
Spanned.SPAN_EXCLUSIVE_INCLUSIVE 從起始下標到終止下標,包括終止下標

 

發佈了19 篇原創文章 · 獲贊 5 · 訪問量 7121
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章