android textview style

  • Post author:
  • Post category:其他


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”

    ),

    0

    ,

    2

    , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

  3. msp.setSpan(

    new

    TypefaceSpan(

    “serif”

    ),

    2

    ,

    4

    , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);



  4. //设置字体大小(绝对值,单位:像素)


  5. msp.setSpan(

    new

    AbsoluteSizeSpan(

    20

    ),

    4

    ,

    6

    , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

  6. msp.setSpan(

    new

    AbsoluteSizeSpan(

    20

    ,

    true

    ),

    6

    ,

    8

    , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    //第二个参数boolean dip,如果为true,表示前面的字体大小单位为dip,否则为像素,同上。




  7. //设置字体大小(相对值,单位:像素) 参数表示为默认字体大小的多少倍


  8. msp.setSpan(

    new

    RelativeSizeSpan(

    0

    .5f),

    8

    ,

    10

    , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    //0.5f表示默认字体大小的一半


  9. msp.setSpan(

    new

    RelativeSizeSpan(

    2

    .0f),

    10

    ,

    12

    , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    //2.0f表示默认字体大小的两倍




  10. //设置字体前景色


  11. msp.setSpan(

    new

    ForegroundColorSpan(Color.MAGENTA),

    12

    ,

    15

    , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    //设置前景色为洋红色




  12. //设置字体背景色


  13. msp.setSpan(

    new

    BackgroundColorSpan(Color.CYAN),

    15

    ,

    18

    , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    //设置背景色为青色




  14. //设置字体样式正常,粗体,斜体,粗斜体


  15. msp.setSpan(

    new

    StyleSpan(android.graphics.Typeface.NORMAL),

    18

    ,

    20

    , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    //正常


  16. msp.setSpan(

    new

    StyleSpan(android.graphics.Typeface.BOLD),

    20

    ,

    22

    , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    //粗体


  17. msp.setSpan(

    new

    StyleSpan(android.graphics.Typeface.ITALIC),

    22

    ,

    24

    , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    //斜体


  18. msp.setSpan(

    new

    StyleSpan(android.graphics.Typeface.BOLD_ITALIC),

    24

    ,

    27

    , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    //粗斜体




  19. //设置下划线


  20. msp.setSpan(

    new

    UnderlineSpan(),

    27

    ,

    30

    , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);



  21. //设置删除线


  22. msp.setSpan(

    new

    StrikethroughSpan(),

    30

    ,

    33

    , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);



  23. //设置上下标


  24. msp.setSpan(

    new

    SubscriptSpan(),

    34

    ,

    35

    , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    //下标


  25. msp.setSpan(

    new

    SuperscriptSpan(),

    36

    ,

    37

    , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    //上标




  26. //超级链接(需要添加setMovementMethod方法附加响应)


  27. msp.setSpan(

    new

    URLSpan(

    “tel:4155551212”

    ),

    37

    ,

    39

    , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    //电话


  28. msp.setSpan(

    new

    URLSpan(

    “mailto:webmaster@google.com”

    ),

    39

    ,

    41

    , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    //邮件


  29. msp.setSpan(

    new

    URLSpan(

    “http://www.baidu.com”

    ),

    41

    ,

    43

    , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //网络

  30. msp.setSpan(

    new

    URLSpan(

    “sms:4155551212”

    ),

    43

    ,

    45

    , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    //短信   使用sms:或者smsto:


  31. msp.setSpan(

    new

    URLSpan(

    “mms:4155551212”

    ),

    45

    ,

    47

    , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    //彩信   使用mms:或者mmsto:


  32. msp.setSpan(

    new

    URLSpan(

    “geo:38.899533,-77.036476”

    ),

    47

    ,

    49

    , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    //地图




  33. //设置字体大小(相对值,单位:像素) 参数表示为默认字体宽度的多少倍


  34. msp.setSpan(

    new

    ScaleXSpan(

    2

    .0f),

    49

    ,

    51

    , 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>















版权声明:本文为jktaihe原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。