android 下划线字体,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;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值