最近遇到一个需求需要实现如下效果:
刚开始没在意,实现起来还是挺费劲,记录下来以便帮助更多需要的人。
首先这个字符串是一个拼接字符串,后面数字是动态的:
- <string name="new_password">Your password is %1$s</string>
<string name="new_password"><![CDATA[Your password is<font color="#00ff1212">%1$s</font>]]></string>
将需要变色的内容用html 标签中的<font></font>标签包裹起来,设置其颜色,将整个字符串放在[CDATA]标签中,好了到这一步我们xml里面就搞定了,下面我们需要在java文件中先将字符串做拼接:
String pwd = getResources().getString(R.string.new_password, password);
拼接字符串有很多种方法,自己随意,这里得到一个string型的字符串
Spanned s = Html.fromHtml(pwd);
注意:网上有说设置字体颜色的时候,有时候设置6位数,字体颜色不变,但本次测试过,有效,如果无效,请尝试加上透明度