TextView中文字設置超連接、顏色、字體

TextView是用來顯示文本的,有時須要給TextView中的個別字設置爲超連接,或者設置個別字的顏色、字體等,那就須要用到Spannable對象,能夠藉助Spannable對象實現以上設置。
效果圖: 



Activity代碼:

  1. package com.zhou.activity;   
  2.   
  3. import android.app.Activity;   
  4. import android.graphics.Color;   
  5. import android.os.Bundle;   
  6. import android.text.Spannable;   
  7. import android.text.SpannableString;   
  8. import android.text.Spanned;   
  9. import android.text.method.LinkMovementMethod;   
  10. import android.text.style.BackgroundColorSpan;   
  11. import android.text.style.ForegroundColorSpan;   
  12. import android.text.style.StyleSpan;   
  13. import android.text.style.URLSpan;   
  14. import android.widget.TextView;   
  15.   
  16. public class TextViewLinkActivity extends Activity {   
  17.     TextView myTextView;   
  18.     @Override  
  19.     public void onCreate(Bundle savedInstanceState) {   
  20.         super.onCreate(savedInstanceState);   
  21.         setContentView(R.layout.main);   
  22.         myTextView = (TextView) this.findViewById(R.id.myTextView);   
  23.            
  24.         //建立一個 SpannableString對象  
  25.         SpannableString sp = new SpannableString("這句話中有百度超連接,有高亮顯示,這樣,或者這樣,還有斜體.");   
  26.         //設置超連接  
  27.         sp.setSpan(new URLSpan("http://www.baidu.com"), 57,   
  28.                 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);   
  29.         //設置高亮樣式一  
  30.         sp.setSpan(new BackgroundColorSpan(Color.RED), 17 ,19,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);   
  31.         //設置高亮樣式二  
  32.         sp.setSpan(new ForegroundColorSpan(Color.YELLOW),20,24,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);     
  33.         //設置斜體  
  34.         sp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 2729, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);   
  35.         //SpannableString對象設置給TextView  
  36.         myTextView.setText(sp);   
  37.         //設置TextView可點擊  
  38.         myTextView.setMovementMethod(LinkMovementMethod.getInstance());   
  39.     }   
  40. }
相關文章
相關標籤/搜索