美文网首页Android
Android Html.fromHtml("")的使用

Android Html.fromHtml("")的使用

作者: 可乐_JS | 来源:发表于2020-09-28 10:34 被阅读0次

记录一下项目中使用Html.fromHtml(r2)时颜色无效的问题

问题:Html.fromHtml("这里有<font style='color:red;'>美女<font color='red'>哦!");美女没有变红

度了一下,问题中的标红文本样式是CSS样式,而Android系统自带的Html.fromHtml();支持的样式是有限的,所以,显然是不支持CSS样式的!

接着度解决方案,度了一下午,愣是没找到现成可用的轮子,难道要自己写一个?首先,我比较菜,其次,时间它也不允许啊,那只能替换了,但是替换有一个问题,那就是要是不能完全匹配的话,那岂不是GG了,看了下后台给返回的所有的标红,都是问题中所述的那种,OK,直接替换~~~

当然,要是遇到标注不固定的情况(比如上面是标注的颜色,要是里边加了字体大小等等的),通过通配符应该是可以解决的,我没有试,有兴趣的或者有需求的可以试试看

我的解决方案,代码如下:

HtmlUtil.setCssStr(tvTitle, b.Title);
/**
 * Des:
 * Created by kele on 2020/9/27.
 * E-mail:984127585@qq.com
 */
public class HtmlUtil {

    public static String getCssStr(String str) {
        String r1 = str.replace("<font style='color:red;'>", "<font color='red'>");
        String r2 = r1.replace("</font>", "</font>");
        return r2;
    }

    public static void setCssStr(TextView tv, String str) {
        String r2 = getCssStr(str);
        if (TextUtils.isEmpty(r2)) {
            tv.setText(str);
        } else {
            tv.setText(Html.fromHtml(r2));
        }
    }
}

相关文章

网友评论

    本文标题:Android Html.fromHtml("")的使用

    本文链接:https://www.haomeiwen.com/subject/zmcduktx.html