我需要更改随机出现在句子中的字符串的颜色。
下面这些句子是我需要展示的。
-
你好。
-
我正在学习#abcandroid。
在这篇文章中,我必须更改单词"#xyz"、"#abc"的颜色,即以字符">#开始"。
我使用了一些字符串函数split()、subString()。但我没有得到我需要的。
所以,请指导我如何解决这个问题。
将SpanableString用于例如:
SpannableString ss = new SpannableString("hai #xyz how are you.");
ss.setSpan(new ForegroundColorSpan(Color.RED), 4, 9, 0);
试着用#改变每个单词的颜色:
String s="hai #xyz how are you.";
ForegroundColorSpan span = new ForegroundColorSpan(Color.RED);
SpannableString ss = new SpannableString(s);
String[] ss = s.split(" ");
int currIndex = 0;
for (String word : ss) {
if (word.startsWith("#")) {
ss.setSpan(span, currIndex,currIndex+ word.length(), 0);
}
currIndex += (word.length() + 1);
}
您可以使用以下代码:
t.setText(first + next, BufferType.SPANNABLE);
Spannable s = (Spannable)t.getText();
int start = first.length();
int end = start + next.length();
s.setSpan(new ForegroundColorSpan(0xFFFF0000), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
或者你可以使用html:
String first = "This word is ";
String next = "<font color='#EE0000'>red</font>";
t.setText(Html.fromHtml(first + next));
使用html标签可以轻松实现这一点
tv_message.setText(Html.fromHtml("<font color="#000000">"+"Hi "+"</font>"+" "+"<font color="#EE0000">"+"XYZ "+"</font>"+" "+"<font color="#000000">"+"How are You ? " + "</font>"));