Android TextView中文字设置超链接、颜色、字体

TextView是用来显示文本的,有时需要给TextView中的个别字设置为超链接,或者设置个别字的颜色、字体等,那就需要用到Spannable对象,可以借助Spannable对象实现以上设置。
效果图: 
Android TextView中文字设置超链接、颜色、字体


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" ),  5 7 ,   
  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),  27 29 , Spannable.SPAN_EXCLUSIVE_INCLUSIVE);   
  35.          //SpannableString对象设置给TextView   
  36.         myTextView.setText(sp);   
  37.          //设置TextView可点击   
  38.         myTextView.setMovementMethod(LinkMovementMethod.getInstance());   
  39.     }   
  40. }

你可能感兴趣的:(android,百度,OS)