1. 程式人生 > >安卓textview編輯部分字型顏色

安卓textview編輯部分字型顏色

    String sr = "你參加的<font color='#FF0000'><small>" + comName + "</small></font>約賽已經退款成功,金額<font color='#FF0000'><small>" + 
        price + "</small></font>元,訂單號<font color='#FF0000'><small>" + number + "</small></font>";
    mViewHolder.t11.setText(Html.fromHtml
(sr));

方法二: 
用SpannableString來實現。

Java程式碼片段:

SpannableString spannableString = new SpannableString("預設顏色紅顏色");
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#FF0000")), 4,spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(spannableString);
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

其中,”預設顏色紅顏色” 為你要改變的文字。setSpan方法有四個引數,ForegroundColorSpan是為文字設定前景色,也就是文字顏色。如果要為文字新增背景顏色,可替換為BackgroundColorSpan。4為文字顏色改變的起始位置,spannableString.length()為文字顏色改變的結束位置。最後一個引數為布林型,可以傳入以下四種。 
Spanned.SPAN_INCLUSIVE_EXCLUSIVE 從起始下標到終了下標,包括起始下標 
Spanned.SPAN_INCLUSIVE_INCLUSIVE 從起始下標到終了下標,同時包括起始下標和終了下標 
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE 從起始下標到終了下標,但都不包括起始下標和終了下標 
Spanned.SPAN_EXCLUSIVE_INCLUSIVE 從起始下標到終了下標,包括終了下標

但是如果文字長度不定,就比較難確定位置,所有優先推薦第一種方法