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

6 篇文章 0 订阅
5 篇文章 0 订阅

原生就支持的部分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));

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值