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;
}
}