Text设置

  1. import android.content.Context;  
  2. import android.graphics.Color;  
  3. import android.text.SpannableString;  
  4. import android.text.Spanned;  
  5. import android.text.style.AbsoluteSizeSpan;  
  6. import android.text.style.BackgroundColorSpan;  
  7. import android.text.style.BulletSpan;  
  8. import android.text.style.ForegroundColorSpan;  
  9. import android.text.style.RelativeSizeSpan;  
  10. import android.text.style.ScaleXSpan;  
  11. import android.text.style.StrikethroughSpan;  
  12. import android.text.style.StyleSpan;  
  13. import android.text.style.SubscriptSpan;  
  14. import android.text.style.SuperscriptSpan;  
  15. import android.text.style.TypefaceSpan;  
  16. import android.text.style.UnderlineSpan;  
  17.   
  18. public class TextViewUtil {  
  19.   
  20.     /** 
  21.      * 设置字体大小,用px 
  22.      *  
  23.      * @param context 
  24.      *  
  25.      * @param str 
  26.      *            目标字符串 
  27.      * @param start 
  28.      *            开始位置 
  29.      * @param end 
  30.      *            结束位置 
  31.      * @param pxSize 
  32.      *            像素大小 
  33.      * @return 
  34.      */  
  35.     public SpannableString getSizeSpanUsePx(Context context, String str, int start, int end, int pxSize) {  
  36.         SpannableString ss = new SpannableString(str);  
  37.         ss.setSpan(new AbsoluteSizeSpan(pxSize), 4, str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  38.         return ss;  
  39.     }  
  40.   
  41.     /** 
  42.      * 设置字体大小,用dip 
  43.      *  
  44.      * @param context 
  45.      *  
  46.      * @param str 
  47.      *            目标字符串 
  48.      * @param start 
  49.      *            开始位置 
  50.      * @param end 
  51.      *            结束位置 
  52.      * @param dipSize 
  53.      *            像素大小 
  54.      * @return 
  55.      */  
  56.     public SpannableString getSizeSpanUseDip(Context context, String str, int start, int end, int dipSize) {  
  57.         SpannableString ss = new SpannableString(str);  
  58.         ss.setSpan(new AbsoluteSizeSpan(dipSize, true), 4, str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  59.         return ss;  
  60.     }  
  61.   
  62.     /** 
  63.      * 设置字体大小,用sp 
  64.      *  
  65.      * @param context 
  66.      *  
  67.      * @param str 
  68.      *            目标字符串 
  69.      * @param start 
  70.      *            开始位置 
  71.      * @param end 
  72.      *            结束位置 
  73.      * @param spSize 
  74.      *            sp大小 
  75.      * @return 
  76.      */  
  77.     public SpannableString getSizeSpanSpToPx(Context context, String str, int start, int end, int spSize) {  
  78.         SpannableString ss = new SpannableString(str);  
  79.         ss.setSpan(new AbsoluteSizeSpan(DisplayUtil.sp2px(context, spSize)), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  80.         return ss;  
  81.     }  
  82.   
  83.     /** 
  84.      * 设置字体相对大小 
  85.      *  
  86.      * @param context 
  87.      * @param str 
  88.      *            目标字符串 
  89.      * @param start 
  90.      *            开始位置 
  91.      * @param end 
  92.      *            结束位置 
  93.      * @param relativeSize 
  94.      *            相对大小 如:0.5f,2.0f 
  95.      * @return 
  96.      */  
  97.     public SpannableString getRelativeSizeSpan(Context context, String str, int start, int end, float relativeSize) {  
  98.         SpannableString ss = new SpannableString(str);  
  99.         ss.setSpan(new RelativeSizeSpan(relativeSize), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  100.         return ss;  
  101.     }  
  102.   
  103.     /** 
  104.      * 设置字体 
  105.      *  
  106.      * @param context 
  107.      * @param str 
  108.      *            目标字符串 
  109.      * @param start 
  110.      *            开始位置 
  111.      * @param end 
  112.      *            结束位置 
  113.      * @param typeface 
  114.      *            字体类型 如:default,efault-bold,monospace,serif,sans-serif 
  115.      * @return 
  116.      */  
  117.     public SpannableString getTypeFaceSpan(Context context, String str, int start, int end, String typeface) {  
  118.         SpannableString ss = new SpannableString(str);  
  119.         ss.setSpan(new TypefaceSpan(typeface), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  120.         return ss;  
  121.     }  
  122.   
  123.     /** 
  124.      * 设置字体形体 
  125.      *  
  126.      * @param context 
  127.      * @param str 
  128.      *            目标字符串 
  129.      * @param start 
  130.      *            开始位置 
  131.      * @param end 
  132.      *            结束位置 
  133.      * @param style 
  134.      *            字体类型 如: Typeface.NORMAL正常 Typeface.BOLD粗体 Typeface.ITALIC斜体 
  135.      *            Typeface.BOLD_ITALIC粗斜体 
  136.      * @return 
  137.      */  
  138.     public SpannableString getStyleSpan(Context context, String str, int start, int end, int style) {  
  139.         SpannableString ss = new SpannableString(str);  
  140.         ss.setSpan(new StyleSpan(style), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  141.         return ss;  
  142.     }  
  143.   
  144.     /** 
  145.      * 设置字体下划线 
  146.      *  
  147.      * @param context 
  148.      * @param str 
  149.      *            目标字符串 
  150.      * @param start 
  151.      *            开始位置 
  152.      * @param end 
  153.      *            结束位置 
  154.      * @return 
  155.      */  
  156.     public SpannableString getUnderLineSpan(Context context, String str, int start, int end) {  
  157.         SpannableString ss = new SpannableString(str);  
  158.         ss.setSpan(new UnderlineSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  159.         return ss;  
  160.     }  
  161.   
  162.     /** 
  163.      * 设置字体删除线 
  164.      *  
  165.      * @param context 
  166.      * @param str 
  167.      *            目标字符串 
  168.      * @param start 
  169.      *            开始位置 
  170.      * @param end 
  171.      *            结束位置 
  172.      * @return 
  173.      */  
  174.     public SpannableString getDeleteLineSpan(Context context, String str, int start, int end) {  
  175.         SpannableString ss = new SpannableString(str);  
  176.         ss.setSpan(new StrikethroughSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  177.         return ss;  
  178.     }  
  179.   
  180.     /** 
  181.      * 设置上标 
  182.      *  
  183.      * @param context 
  184.      * @param str 
  185.      *            目标字符串 
  186.      * @param start 
  187.      *            开始位置 
  188.      * @param end 
  189.      *            结束位置 
  190.      * @return 
  191.      */  
  192.     public SpannableString getSuperscriptSpan(Context context, String str, int start, int end) {  
  193.         SpannableString ss = new SpannableString(str);  
  194.         ss.setSpan(new SuperscriptSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  195.         return ss;  
  196.     }  
  197.   
  198.     /** 
  199.      * 设置放大系数 
  200.      *  
  201.      * @param context 
  202.      * @param str 
  203.      *            目标字符串 
  204.      * @param start 
  205.      *            开始位置 
  206.      * @param end 
  207.      *            结束位置 
  208.      * @param scale 
  209.      *            放大多少倍,x轴方向,y轴不变 如:0.5f, 2.0f 
  210.      * @return 
  211.      */  
  212.     public SpannableString getScaleSpan(Context context, String str, int start, int end, float scale) {  
  213.         SpannableString ss = new SpannableString(str);  
  214.         ss.setSpan(new ScaleXSpan(scale), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  215.         return ss;  
  216.     }  
  217.   
  218.     /** 
  219.      * 设置下标 
  220.      *  
  221.      * @param context 
  222.      * @param str 
  223.      *            目标字符串 
  224.      * @param start 
  225.      *            开始位置 
  226.      * @param end 
  227.      *            结束位置 
  228.      * @return 
  229.      */  
  230.     public SpannableString getSubscriptSpan(Context context, String str, int start, int end) {  
  231.         SpannableString ss = new SpannableString(str);  
  232.         ss.setSpan(new SubscriptSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  233.         return ss;  
  234.     }  
  235.   
  236.     /** 
  237.      * 设置背景色 
  238.      *  
  239.      * @param context 
  240.      * @param str 
  241.      *            目标字符串 
  242.      * @param start 
  243.      *            开始位置 
  244.      * @param end 
  245.      *            结束位置 
  246.      * @param color 
  247.      *            颜色值 如Color.BLACK 
  248.      * @return 
  249.      */  
  250.     public SpannableString getBackGroundColorSpan(Context context, String str, int start, int end, int color) {  
  251.         SpannableString ss = new SpannableString(str);  
  252.         ss.setSpan(new BackgroundColorSpan(color), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  253.         return ss;  
  254.     }  
  255.   
  256.     /** 
  257.      * 设置背景色 
  258.      *  
  259.      * @param context 
  260.      *  
  261.      * @param str 
  262.      *            目标字符串 
  263.      * @param start 
  264.      *            开始位置 
  265.      * @param end 
  266.      *            结束位置 
  267.      * @param color 
  268.      *            颜色值 如:#CCCCCC 
  269.      * @return 
  270.      */  
  271.     public SpannableString getBackGroundColorSpan(Context context, String str, int start, int end, String color) {  
  272.         SpannableString ss = new SpannableString(str);  
  273.         ss.setSpan(new BackgroundColorSpan(Color.parseColor(color)), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  274.         return ss;  
  275.     }  
  276.   
  277.     /** 
  278.      * 设置前景色 
  279.      *  
  280.      * @param context 
  281.      *  
  282.      * @param str 
  283.      *            目标字符串 
  284.      * @param start 
  285.      *            开始位置 
  286.      * @param end 
  287.      *            结束位置 
  288.      * @param color 
  289.      *            颜色值 如Color.BLACK 
  290.      * @return 
  291.      */  
  292.     public SpannableString getForegroundColorSpan(Context context, String str, int start, int end, int color) {  
  293.         SpannableString ss = new SpannableString(str);  
  294.         ss.setSpan(new ForegroundColorSpan(color), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  295.         return ss;  
  296.     }  
  297.   
  298.     /** 
  299.      * 设置前景色 
  300.      *  
  301.      * @param context 
  302.      *  
  303.      * @param str 
  304.      *            目标字符串 
  305.      * @param start 
  306.      *            开始位置 
  307.      * @param end 
  308.      *            结束位置 
  309.      * @param color 
  310.      *            颜色值 如:#CCCCCC 
  311.      * @return 
  312.      */  
  313.     public SpannableString getForegroundColorSpan(Context context, String str, int start, int end, String color) {  
  314.         SpannableString ss = new SpannableString(str);  
  315.         ss.setSpan(new ForegroundColorSpan(Color.parseColor(color)), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  316.         return ss;  
  317.     }  
  318. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值