1、BackgroundColorSpan 背景色 spanText.setSpan(
new
BackgroundColorSpan(Color.GREEN),
0
, spanText.length(),
Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append(
"\n"
);
mTVText.append(spanText);
2、ForegroundColorSpan 文本颜色(前景色) spanText.setSpan(
new
ForegroundColorSpan(Color.BLUE),
6
, spanText.length(),
Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append(
"\n"
);
mTVText.append(spanText);
3、MaskFilterSpan 修饰效果,如模糊(BlurMaskFilter)、浮雕(EmbossMaskFilter) int
length = spanText.length();
//模糊(BlurMaskFilter)
MaskFilterSpan maskFilterSpan =
new
MaskFilterSpan(
new
BlurMaskFilter(
3
, Blur.OUTER));
spanText.setSpan(maskFilterSpan,
0
, length -
10
, Spannable.
SPAN_INCLUSIVE_EXCLUSIVE);
//浮雕(EmbossMaskFilter)
maskFilterSpan =
new
MaskFilterSpan(
new
EmbossMaskFilter(
new
float
[]{
1
,
1
,
3
},
1
.5f,
8
,
3
));
spanText.setSpan(maskFilterSpan, length -
10
, length, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append(
"\n"
);
mTVText.append(spanText);
4、ScaleXSpan 基于x轴缩放 spanText =
new
SpannableString(
"ScaleXSpan -- 脚本之家"
);
//参数proportion:比例大小
spanText.setSpan(
new
ScaleXSpan(
3
.8f),
3
,
7
, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append(
"\n"
);
mTVText.append(spanText);
DynamicDrawableSpan drawableSpan =
new
DynamicDrawableSpan(DynamicDrawableSpan.ALIGN_BASELINE) {
@Override
public
Drawable getDrawable() {
Drawable d = getResources().getDrawable(R.drawable.ic_launcher);
d.setBounds(
0
,
0
,
50
,
50
);
return
d;
}
};
DynamicDrawableSpan drawableSpan2 =
new
DynamicDrawableSpan(
DynamicDrawableSpan.ALIGN_BOTTOM) {
@Override
public
Drawable getDrawable() {
Drawable d = getResources().getDrawable(R.drawable.ic_launcher);
d.setBounds(
0
,
0
,
50
,
50
);
return
d;
}
};
spanText.setSpan(drawableSpan,
3
,
4
, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
spanText.setSpan(drawableSpan2,
7
,
8
, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append(
"\n"
);
mTVText.append(spanText);
|
Android TextView使用SpannableString设置复合文本的方法
最新推荐文章于 2021-08-24 17:48:14 发布