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. }

你可能感兴趣的:(android,移动开发,职场,休闲)