Android + Html 编辑文本的一个小问题

项目中时长会遇到TextView 显示的文本要用到不同的样式,这时如果用很多个TextView组合会显得比较low,而且也比叫浪费时间,通常我们利用Html相关的API:

String text = "<font color='#333333'><Strong>"+
                       Hello+
                        "</Strong></font>
                        <font color='#666666'>"+
                        World+
                        "</font>";

 textView1.setText(Html.fromHtml(text));

实际应用中,我们通常会将文案写在资源文件中,然后在代码中调用,但我们会发现在资源文件中写的样式却没有效果:
 

<string name="test_1">
         This is a <font color="#4fc3f7"><a href="https://www.baidu.com">Hello world</a>        
          </font>yeah,yeah,fuck!
</string>

textView1.setText(Html.fromHtml(getString(R.string.test_1)));

怎么解决这个问题呢?其实很简单,在资源文件里相应的文案上加上  <![CDATA[]]>

<string name="test_1">
        <![CDATA[
         This is a <font color="#4fc3f7" size="24px"><a href="https://www.baidu.com">Test 
         case</a></font>yeah,yeah,fuck!
        ]]>
    </string>

这样在资源文件里写的样式就成正确显示了,那么这是什么意思呢?

 <![CDATA[]]> 包含的内容将表示为纯文本,这样Html的API就能正确解析这段文案了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章