android-修改TextView中部分文字的顏色

 

[java] view plaincopy
  1. textView = (TextView) findViewById(R.id.textview);  
  2. SpannableStringBuilder builder = new SpannableStringBuilder(textView.getText().toString());  
  3.   
  4. //ForegroundColorSpan 爲文字前景色,BackgroundColorSpan爲文字背景色  
  5. ForegroundColorSpan redSpan = new ForegroundColorSpan(Color.RED);  
  6. ForegroundColorSpan whiteSpan = new ForegroundColorSpan(Color.WHITE);  
  7. ForegroundColorSpan blueSpan = new ForegroundColorSpan(Color.BLUE);  
  8. ForegroundColorSpan greenSpan = new ForegroundColorSpan(Color.GREEN);  
  9. ForegroundColorSpan yellowSpan = new ForegroundColorSpan(Color.YELLOW);  
  10.   
  11.   
  12.   
  13. builder.setSpan(redSpan, 01, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
  14. builder.setSpan(whiteSpan, 12, Spannable.SPAN_INCLUSIVE_INCLUSIVE);  
  15. builder.setSpan(blueSpan, 23, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
  16. builder.setSpan(greenSpan, 34, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
  17. builder.setSpan(yellowSpan, 4,5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
  18.   
  19. textView.setText(builder);  
                                           

Spannable簡介

TextView和EditText是用來顯示文本的,有時需要給TextView中的個別字設置爲超鏈接,或者設置個別字的顏色、字體等,那就需要用到Spannable對象,可以藉助Spannable對象實現以上設置。

使用步驟:

  1. SpannableString spannable = new SpannableString(str);
  2. // SpannableStringBuilder spannable = new SpannableStringBuilder(str);
  3. //創建各類Span
  4. CharacterStyle span=new UnderlineSpan(); 
  5. spannable.setSpan(span,start,end, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
  6. //可以連續設置span
  7. view.setText(spannable);
void android.text.SpannableString.setSpan(Object what, int start, int end, int flags)

setSpan會將start到end這間的文本設置成創建的span格式。span可以是圖片格式。

各類Span示例

  1. new URLSpan("http://www.baidu.com")
  2. new BackgroundColorSpan(Color.RED)
  3. new ForegroundColorSpan(Color.YELLOW)
  4. new StyleSpan(android.graphics.Typeface.BOLD_ITALIC)
  5. new UnderlineSpan(); 
  6. new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE);

Html.fromHtml()

只顯示帶文本的html可以用下面的方法處理html文件。

public static Spanned fromHtml (String source)  

顯示帶圖片的html要用下面的方法處理html文件。

public static Spanned fromHtml (String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler)  

ImageGetter 爲處理html中<img>的處理器,生成Drawable對象並返回。 

創建ImageGetter 主要實現下面的方法,source爲<img>標籤中src屬性的值。

public Drawable getDrawable(String source)  

示例:顯示html帶圖片 (表情開發)


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