首页 > 系统 > Android > 正文

Android编程中TextView字体属性设置方法(大小、字体、下划线、背景色)

2020-04-11 11:21:38
字体:
来源:转载
供稿:网友

本文实例讲述了Android编程中TextView字体属性设置方法(大小、字体、下划线、背景色)。分享给大家供大家参考,具体如下:

import android.content.Context;import android.graphics.Color;import android.text.SpannableString;import android.text.Spanned;import android.text.style.AbsoluteSizeSpan;import android.text.style.BackgroundColorSpan;import android.text.style.BulletSpan;import android.text.style.ForegroundColorSpan;import android.text.style.RelativeSizeSpan;import android.text.style.ScaleXSpan;import android.text.style.StrikethroughSpan;import android.text.style.StyleSpan;import android.text.style.SubscriptSpan;import android.text.style.SuperscriptSpan;import android.text.style.TypefaceSpan;import android.text.style.UnderlineSpan;public class TextViewUtil {  /**   * 设置字体大小,用px   *    * @param context   *    * @param str   *   目标字符串   * @param start   *   开始位置   * @param end   *   结束位置   * @param pxSize   *   像素大小   * @return   */  public SpannableString getSizeSpanUsePx(Context context, String str, int start, int end, int pxSize) {    SpannableString ss = new SpannableString(str);    ss.setSpan(new AbsoluteSizeSpan(pxSize), 4, str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    return ss;  }  /**   * 设置字体大小,用dip   *    * @param context   *    * @param str   *   目标字符串   * @param start   *   开始位置   * @param end   *   结束位置   * @param dipSize   *   像素大小   * @return   */  public SpannableString getSizeSpanUseDip(Context context, String str, int start, int end, int dipSize) {    SpannableString ss = new SpannableString(str);    ss.setSpan(new AbsoluteSizeSpan(dipSize, true), 4, str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    return ss;  }  /**   * 设置字体大小,用sp   *    * @param context   *    * @param str   *   目标字符串   * @param start   *   开始位置   * @param end   *   结束位置   * @param spSize   *   sp大小   * @return   */  public SpannableString getSizeSpanSpToPx(Context context, String str, int start, int end, int spSize) {    SpannableString ss = new SpannableString(str);    ss.setSpan(new AbsoluteSizeSpan(DisplayUtil.sp2px(context, spSize)), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    return ss;  }  /**   * 设置字体相对大小   *    * @param context   * @param str   *   目标字符串   * @param start   *   开始位置   * @param end   *   结束位置   * @param relativeSize   *   相对大小 如:0.5f,2.0f   * @return   */  public SpannableString getRelativeSizeSpan(Context context, String str, int start, int end, float relativeSize) {    SpannableString ss = new SpannableString(str);    ss.setSpan(new RelativeSizeSpan(relativeSize), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    return ss;  }  /**   * 设置字体   *    * @param context   * @param str   *   目标字符串   * @param start   *   开始位置   * @param end   *   结束位置   * @param typeface   *   字体类型 如:default,efault-bold,monospace,serif,sans-serif   * @return   */  public SpannableString getTypeFaceSpan(Context context, String str, int start, int end, String typeface) {    SpannableString ss = new SpannableString(str);    ss.setSpan(new TypefaceSpan(typeface), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    return ss;  }  /**   * 设置字体形体   *    * @param context   * @param str   *   目标字符串   * @param start   *   开始位置   * @param end   *   结束位置   * @param style   *   字体类型 如: Typeface.NORMAL正常 Typeface.BOLD粗体 Typeface.ITALIC斜体   *   Typeface.BOLD_ITALIC粗斜体   * @return   */  public SpannableString getStyleSpan(Context context, String str, int start, int end, int style) {    SpannableString ss = new SpannableString(str);    ss.setSpan(new StyleSpan(style), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    return ss;  }  /**   * 设置字体下划线   *    * @param context   * @param str   *   目标字符串   * @param start   *   开始位置   * @param end   *   结束位置   * @return   */  public SpannableString getUnderLineSpan(Context context, String str, int start, int end) {    SpannableString ss = new SpannableString(str);    ss.setSpan(new UnderlineSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    return ss;  }  /**   * 设置字体删除线   *    * @param context   * @param str   *   目标字符串   * @param start   *   开始位置   * @param end   *   结束位置   * @return   */  public SpannableString getDeleteLineSpan(Context context, String str, int start, int end) {    SpannableString ss = new SpannableString(str);    ss.setSpan(new StrikethroughSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    return ss;  }  /**   * 设置上标   *    * @param context   * @param str   *   目标字符串   * @param start   *   开始位置   * @param end   *   结束位置   * @return   */  public SpannableString getSuperscriptSpan(Context context, String str, int start, int end) {    SpannableString ss = new SpannableString(str);    ss.setSpan(new SuperscriptSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    return ss;  }  /**   * 设置放大系数   *    * @param context   * @param str   *   目标字符串   * @param start   *   开始位置   * @param end   *   结束位置   * @param scale   *   放大多少倍,x轴方向,y轴不变 如:0.5f, 2.0f   * @return   */  public SpannableString getScaleSpan(Context context, String str, int start, int end, float scale) {    SpannableString ss = new SpannableString(str);    ss.setSpan(new ScaleXSpan(scale), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    return ss;  }  /**   * 设置下标   *    * @param context   * @param str   *   目标字符串   * @param start   *   开始位置   * @param end   *   结束位置   * @return   */  public SpannableString getSubscriptSpan(Context context, String str, int start, int end) {    SpannableString ss = new SpannableString(str);    ss.setSpan(new SubscriptSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    return ss;  }  /**   * 设置背景色   *    * @param context   * @param str   *   目标字符串   * @param start   *   开始位置   * @param end   *   结束位置   * @param color   *   颜色值 如Color.BLACK   * @return   */  public SpannableString getBackGroundColorSpan(Context context, String str, int start, int end, int color) {    SpannableString ss = new SpannableString(str);    ss.setSpan(new BackgroundColorSpan(color), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    return ss;  }  /**   * 设置背景色   *    * @param context   *    * @param str   *   目标字符串   * @param start   *   开始位置   * @param end   *   结束位置   * @param color   *   颜色值 如:#CCCCCC   * @return   */  public SpannableString getBackGroundColorSpan(Context context, String str, int start, int end, String color) {    SpannableString ss = new SpannableString(str);    ss.setSpan(new BackgroundColorSpan(Color.parseColor(color)), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    return ss;  }  /**   * 设置前景色   *    * @param context   *    * @param str   *   目标字符串   * @param start   *   开始位置   * @param end   *   结束位置   * @param color   *   颜色值 如Color.BLACK   * @return   */  public SpannableString getForegroundColorSpan(Context context, String str, int start, int end, int color) {    SpannableString ss = new SpannableString(str);    ss.setSpan(new ForegroundColorSpan(color), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    return ss;  }  /**   * 设置前景色   *    * @param context   *    * @param str   *   目标字符串   * @param start   *   开始位置   * @param end   *   结束位置   * @param color   *   颜色值 如:#CCCCCC   * @return   */  public SpannableString getForegroundColorSpan(Context context, String str, int start, int end, String color) {    SpannableString ss = new SpannableString(str);    ss.setSpan(new ForegroundColorSpan(Color.parseColor(color)), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    return ss;  }}

希望本文所述对大家Android程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表