Android Html.fromHtml()里面的超链接颜色修改

Android Html.fromHtml()里面的超链接颜色修改

在安卓里第一次启动都要弹窗隐私提示的弹框,一般做法就是一段写在本地的html代码用Html.fromHtml()去加载,然后超链接可以点击。

  private final String str = "欢迎使用xxx!<br>请您先阅读并了解<a href ='https://xxxx'>《隐私政策》</a> 和 <a href ='https://xxx'>《用户协议》</a>我们将严格按照上述协议为您提供服务,保护您的信息安全,点击“同意”即表示您已阅读并同意全部条款,可以继续使用我们的产品和服务。";
  tv.setText(Html.fromHtml(str));

隐私政策和用户协议的链接默认是蓝色的,在html代码里加了几种修改

1 <a style='color:颜色值'>隐私政策</a>”
2 <a href=""><font color="white">隐私政策</font></a>
3 <body link="red" alink="blue" vlink="red">
    <a href="">隐私政策</a>
</body>

最终都没起作用还是默认的蓝色

可以采用设置setSpan的方式进行修改,比如设置红色

     CharSequence text  =   tv.getText();
            if (text instanceof Spannable){
                int  end  =  text.length();
                Spannable sp  =  (Spannable)   tv.getText();
                URLSpan[] urls = sp.getSpans( 0 , end, URLSpan.class );

                SpannableStringBuilder style = new  SpannableStringBuilder(text);
                style.clearSpans(); // should clear old spans
                for (URLSpan url : urls){
                    URLSpan myURLSpan=   new  URLSpan(url.getURL());
                    style.setSpan(myURLSpan,sp.getSpanStart(url),sp.getSpanEnd(url),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
                    style.setSpan(new ForegroundColorSpan(Color.RED), sp.getSpanStart(url), sp.getSpanEnd(url), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);//设置为红色
                }
               tv.setText(style);
            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值