Android开发中Html.fromHtml(String source)方法过时的替代方法

本文介绍了在Android开发中,当Html.fromHtml(String source)方法在API level 24及以上版本过时时,如何使用新的解决办法。通过添加flags参数,如Html.fromHtml(String source, int flags),来替代过时的方法。flags的两种模式分别表示块元素之间的换行符数量。" 112024792,10536104,使用numpy计算协方差:深入理解numpy.cov,"['Python', '数据分析', 'numpy库', '统计学']

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

前言

我们在开发中难免会遇到一个字符串中有不同颜色的字体或者有不同大小的字体这样的需求,所以可能会用到Html.fromHtml(String source) ,代码如下:

String str2 = "今天<font color='#FF0000'><small>天气不错</small></font>";
tv2.setText(Html.fromHtml(str2));

一、问题

在API level 24及以上这个方法是过时的。

二、解决办法

API Level 24或以上使用2个参数的方法,需要添加一个flag, Html.fromHtml(String source, int flags) 。代码如下:

TextView tv  = (TextView) findViewById(R.id.tv_text);
String content = "今天<font color='#FF0000'><small>天气不错</small></font>";
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
    tv.setText(Html.fromHtml(content,Html.FROM_HTML_MODE_LEGACY));
} else {
    tv.setText(Html.fromHtml(content));
}

其中两个的flags所代表的意思分别是:
FROM_HTML_MODE_COMPACT:html块元素之间使用一个换行符分隔
FROM_HTML_MODE_LEGACY:html块元素之间使用两个换行符分隔

参考stackoverflow上的解答:https://stackoverflow.com/questions/37899856/html-fromhtml-is-deprecated-what-is-the-alternative

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值