博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android ---------- 富文本构建
阅读量:7211 次
发布时间:2019-06-29

本文共 3057 字,大约阅读时间需要 10 分钟。

String ="";

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

 //设置 字体大小(绝对值,单位:像素) 

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:webmaster@google.com"
),
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); 
 
 
 
 
 
 
 
 
 
 
 
   

转载于:https://www.cnblogs.com/apeandcat/p/8366485.html

你可能感兴趣的文章
java 7 Reflection详解(二),获取class对象信息
查看>>
数据重现之11.5.2:RAID5同步与异步的判断
查看>>
UML 10 种常见的域建模错误
查看>>
leetCode 6. ZigZag Conversion 字符串 (上传费劲)
查看>>
Spring(15)——基于注解的配置(二)
查看>>
SDS趋势之二:对象存储将替代文件存储
查看>>
Lync2013 升级错误总结2 Lync2013 PC和手机客户端登录无法验证
查看>>
在Solaris 下使用Os Watcher 监控Oracle
查看>>
Android进入商店并跳转到指定应用
查看>>
MessageQueue的使用方法(二)
查看>>
修改PPC下的移动运营商名称为中文
查看>>
mysql dba系统学习(2)了解mysql的源码目录及源文件
查看>>
GitHub 版本控制 项目托管 04 创建GitHub远程仓库
查看>>
Java实现MD5加密
查看>>
oracle日常维护(不断更新)
查看>>
server 2008 跨进新的平台(二)
查看>>
exchange 2010申请分配证书服务提示:证书无效,不可用于exchange server
查看>>
ASP.NET MVC中,通用的异常处理
查看>>
Struts tiles入门(最最简单的例子)
查看>>
SpringBoot入门系列: Spring Boot的测试
查看>>