android SpannableString使用详解

  1. /** 
  2. * 超链接 
  3. */  
  4. private void addUrlSpan() {  
  5.     SpannableString spanString = new SpannableString("超链接");  
  6.     URLSpan span = new URLSpan("tel:0123456789");  
  7.     spanString.setSpan(span, 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
  8.     tv.append(spanString);  
  9. }  
  10.   
  11.   
  12. /** 
  13. * 文字背景颜色 
  14. */  
  15. private void addBackColorSpan() {  
  16.     SpannableString spanString = new SpannableString("颜色2");  
  17.     BackgroundColorSpan span = new BackgroundColorSpan(Color.YELLOW);  
  18.     spanString.setSpan(span, 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
  19.     tv.append(spanString);  
  20. }  
  21.   
  22.   
  23. /** 
  24. * 文字颜色 
  25. */  
  26. private void addForeColorSpan() {  
  27.     SpannableString spanString = new SpannableString("颜色1");  
  28.     ForegroundColorSpan span = new ForegroundColorSpan(Color.BLUE);  
  29.     spanString.setSpan(span, 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
  30.     tv.append(spanString);  
  31. }  
  32.   
  33.   
  34. /** 
  35. * 字体大小 
  36. */  
  37. private void addFontSpan() {  
  38.     SpannableString spanString = new SpannableString("36号字体");  
  39.     AbsoluteSizeSpan span = new AbsoluteSizeSpan(36);  
  40.     spanString.setSpan(span, 0, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
  41.     tv.append(spanString);  
  42. }  
  43.   
  44.   
  45. /** 
  46. * 粗体,斜体 
  47. */  
  48. private void addStyleSpan() {  
  49.     SpannableString spanString = new SpannableString("BIBI");  
  50.     StyleSpan span = new StyleSpan(Typeface.BOLD_ITALIC);  
  51.     spanString.setSpan(span, 0, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
  52.     tv.append(spanString);  
  53. }  
  54.   
  55.   
  56. /** 
  57. * 删除线 
  58. */  
  59. private void addStrikeSpan() {  
  60.     SpannableString spanString = new SpannableString("删除线");  
  61.     StrikethroughSpan span = new StrikethroughSpan();  
  62.     spanString.setSpan(span, 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
  63.     tv.append(spanString);  
  64. }  
  65.   
  66. /** 
  67. * 下划线 
  68. */  
  69. private void addUnderLineSpan() {  
  70.     SpannableString spanString = new SpannableString("下划线");  
  71.     UnderlineSpan span = new UnderlineSpan();  
  72.     spanString.setSpan(span, 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
  73.     tv.append(spanString);  
  74. }  
  75.   
  76.   
  77.   
  78. /** 
  79. * 图片 
  80. */  
  81. private void addImageSpan() {  
  82.     SpannableString spanString = new SpannableString(" ");  
  83.     Drawable d = getResources().getDrawable(R.drawable.ic_launcher);  
  84.     d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());  
  85.     ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);  
  86.     spanString.setSpan(span, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
  87.     tv.append(spanString);  
  88. }  
原文地址:https://www.cnblogs.com/lianghui66/p/4792217.html