Android资源之String (三): html标签,语法(原生支持) 设置字体大小/颜色/下划线等

本文详细介绍了Android系统中对于HTML标签的支持情况,包括了多种文本样式调整的方法,如加粗、斜体、下划线等,并提供了如何在资源文件中正确使用这些标签的实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原生就支持的部分html语法

官方 Supported HTML elements include: 给出了 b,i,u,但是实际上支持的还有。 

根据 
StringBlock.java ( frameworks\base\core\java\android\content\res) 
的 get 方法源码可知,有以下类型可以支持。 

"b");     ==>StyleSpan(Typeface.BOLD),
"i");      ==>StyleSpan(Typeface.ITALIC),
"u");     ==>UnderlineSpan
"tt");     ==>TypefaceSpan("monospace"),
"big");   ==>RelativeSizeSpan(1.25f),
"small"); ==>RelativeSizeSpan(0.8f),
"sup");   ==>SubscriptSpan(),//上下标 
"sub");   ==>SuperscriptSpan(),
"strike"); ==>StrikethroughSpan(),//删除线 
"li");        ==>new BulletSpan(10),//用在首位,多个列表的圆点符号 
"marquee"); TextUtils.TruncateAt.MARQUEE

由其applyStyles 方法可知还支持 
"font;": 
    ";height="    ==>Height(size),
    ";size="        ==>AbsoluteSizeSpan(size, true),
    ";fgcolor="    ==>ForegroundColorSpan(c);
    ";color="       ==>ForegroundColorSpan(c);
    ";bgcolor="   ==>BackgroundColorSpan(c);
    ";face="        ==>TypefaceSpan(sub),
“a;”:
    ”;href=“  ==>URLSpan(sub),

"annotation;" ==>Annotation(key, value),

参考:
<string name="test">bold for <b>test</b> small for <small>this is the small string</small></string>
<string name="sms_short_code_details">This <font fgcolor="#ffffb060">may cause charges</font> on your mobile account.</string>
其中font的颜色既fgcolor属性要以Android的颜色格式指定,比如 #FF00FF00 ,要带上前面的透明度,不然透明度默认是0,既类似 #00FF0000 这样,会把字弄没。 

标准HTML标签

方法1、使用 CDATA(推荐)
<string name="demoStr"><Data><![CDATA[ <b>ABC</b> ]]> </Data></string>
方法2、转义HTML标签
<string name="myHeadStr">&lt;b>&lt;u>bold, underline &lt;/u>&lt;/b></string>
在程序里引用:
Html.fromHtml(getResources().getString(R.string.myHeadStr));

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值