android textview style

来源:互联网 发布:mysql 双主 英文描述 编辑:程序博客网 时间:2024/06/06 18:32

1) 使用 spannable的子类

1)  SpannableString msp= new SpannableString(string); 或者 SpannableStringBuilder msp= new SpannableStringBuilder(String);

        2)

  1. //设置字体(default,default-bold,monospace,serif,sans-serif)  
  2.         msp.setSpan(new TypefaceSpan("monospace"), 02, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  3.         msp.setSpan(new TypefaceSpan("serif"), 24, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  4.           
  5.         //设置字体大小(绝对值,单位:像素)   
  6.         msp.setSpan(new AbsoluteSizeSpan(20), 46, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  7.         msp.setSpan(new AbsoluteSizeSpan(20,true), 68, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //第二个参数boolean dip,如果为true,表示前面的字体大小单位为dip,否则为像素,同上。  
  8.           
  9.         //设置字体大小(相对值,单位:像素) 参数表示为默认字体大小的多少倍  
  10.         msp.setSpan(new RelativeSizeSpan(0.5f), 810, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //0.5f表示默认字体大小的一半  
  11.         msp.setSpan(new RelativeSizeSpan(2.0f), 1012, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //2.0f表示默认字体大小的两倍  
  12.           
  13.         //设置字体前景色  
  14.         msp.setSpan(new ForegroundColorSpan(Color.MAGENTA), 1215, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //设置前景色为洋红色  
  15.           
  16.         //设置字体背景色  
  17.         msp.setSpan(new BackgroundColorSpan(Color.CYAN), 1518, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //设置背景色为青色  
  18.        
  19.         //设置字体样式正常,粗体,斜体,粗斜体  
  20.         msp.setSpan(new StyleSpan(android.graphics.Typeface.NORMAL), 1820, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //正常  
  21.         msp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 2022, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //粗体  
  22.         msp.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 2224, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //斜体  
  23.         msp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 2427, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //粗斜体  
  24.           
  25.         //设置下划线  
  26.         msp.setSpan(new UnderlineSpan(), 2730, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  27.           
  28.         //设置删除线  
  29.         msp.setSpan(new StrikethroughSpan(), 3033, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  30.           
  31.         //设置上下标  
  32.         msp.setSpan(new SubscriptSpan(), 3435, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //下标     
  33.         msp.setSpan(new SuperscriptSpan(), 3637, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);   //上标              
  34.           
  35.         //超级链接(需要添加setMovementMethod方法附加响应)  
  36.         msp.setSpan(new URLSpan("tel:4155551212"), 3739, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //电话     
  37.         msp.setSpan(new URLSpan("mailto:webmaster@google.com"), 3941, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //邮件     
  38.         msp.setSpan(new URLSpan("http://www.baidu.com"), 4143, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //网络     
  39.         msp.setSpan(new URLSpan("sms:4155551212"), 4345, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //短信   使用sms:或者smsto:  
  40.         msp.setSpan(new URLSpan("mms:4155551212"), 4547, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //彩信   使用mms:或者mmsto:  
  41.         msp.setSpan(new URLSpan("geo:38.899533,-77.036476"), 4749, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //地图     
  42.           
  43.         //设置字体大小(相对值,单位:像素) 参数表示为默认字体宽度的多少倍  
  44.         msp.setSpan(new ScaleXSpan(2.0f), 4951, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //2.0f表示默认字体宽度的两倍,即X轴方向放大为默认字体的两倍,而高度不变  
3) tv.setText(msg);
2,Html
 
  1.    Spanned s = Html.fromHtml(    
  2.          "<b>text3:</b>  Text with a " +   
  3.          "<a href=\"http://www.google.com\">link</a> " +   
  4.          "created in the Java source code using HTML."));  
tv.setText(s)

3,定义 strings.xml
<string name="text1"><a>msg</a></string>



0 0