知识的价值不在于占有,而在于使用。这篇文章主要讲述Android ---------- 富文本构建相关的知识,希望能为你提供帮助。
String
txt="";
int start=0,end=9;
//创建一个 SpannableString对象
SpannableString
str = new
SpannableString(txt);
//
设置 字体(default,default-bold,monospace,serif,sans-serif)
str.setSpan(new TypefaceSpan("monospace"),start,end,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//
设置 字体大小(绝对值,单位:像素)
【Android ---------- 富文本构建】str.setSpan(new AbsoluteSizeSpan(20,true), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//第二个参数boolean dip,如果为true,表示前面的字体大小单位为dip,否则为像素
//设置字体大小(相对值,单位:像素) 参数表示为默认字体大小的多少倍
str.setSpan(
new
RelativeSizeSpan(
0
.5f),start
,end
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//0.5f表示默认字体大小的一半
//设置字体前景色
str.setSpan(
new
ForegroundColorSpan(Color.MAGENTA), start
, end
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置前景色为洋红色
//设置字体背景色
str.setSpan(
new
BackgroundColorSpan(Color.CYAN), start
, end
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置背景色为青色
//设置字体样式正常,粗体,斜体,粗斜体
str.setSpan(
new
StyleSpan(android.graphics.Typeface.NORMAL), start
, end
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//正常
str.setSpan(
new
StyleSpan(android.graphics.Typeface.BOLD), start
, end
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//粗体
str.setSpan(
new
StyleSpan(android.graphics.Typeface.ITALIC), start
, end
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//斜体
str.setSpan(
new
StyleSpan(android.graphics.Typeface.BOLD_ITALIC), start
, end
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//粗斜体
//设置下划线
str.setSpan(
new
UnderlineSpan(), start
, end
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置删除线
str.setSpan(
new
StrikethroughSpan(), start
, end
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置上下标
str.setSpan(
new
SubscriptSpan(), start
, end
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//下标
str.setSpan(
new
SuperscriptSpan(), start
, end
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//上标
//超级链接(需要添加setMovementMethod方法附加响应)
str.setSpan(
new
URLSpan(
"tel:4155551212"
),
37
,
39
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//电话
str.setSpan(
new
URLSpan(
"mailto:[email
protected]"
),
39
,
41
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//邮件
str.setSpan(
new
URLSpan("http://www.sistergate.com"
),
41
,
43
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//网络
str.setSpan(
new
URLSpan(
"sms:4155551212"
),
43
,
45
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//短信
使用sms:或者smsto:
str.setSpan(
new
URLSpan(
"mms:4155551212"
),
45
,
47
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//彩信
使用mms:或者mmsto:
str.setSpan(
new
URLSpan(
"geo:38.899533,-77.036476"
),
47
,
49
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//地图
//设置字体大小(相对值,单位:像素) 参数表示为默认字体宽度的多少倍
str.setSpan(
new
ScaleXSpan(
2
.0f),
start
,
end
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//2.0f表示默认字体宽度的两倍,即X轴方向放大为默认字体的两倍,而高度不变
//设置图片
Drawable drawable = getResources().getDrawable(R.drawable.icon);
drawable.setBounds(
0
,
0
, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
str.setSpan(
new
ImageSpan(drawable),
53
,
57
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置图片
ImageSpan span = new ImageSpan(this,R.mipmap.ic_launcher);
SpannableString spannableString = new SpannableString(CONTENT);
spannableString.setSpan(span,0,1,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
mTvTextView.setText(spannableString);
mTextView.setText(msp);
推荐阅读
- 为啥本地连接受局限或无连接,本文教您本地连接受局限或无连接怎样处理
- Android ---------- 下拉刷新,上拉加载
- application.properties to application.yml
- Android应用开发基本流程
- 自动代还信用卡APP软件
- this指向问题(callapplyblind),自我理解的
- Java并发(happens-before)
- appium定位toast消息的使用
- 网易云易盾中标浙报反作弊服务 助力浙江新闻App健康发展