我需要更改在句子中隨機出現的字符串的顏色。如何更改android中的句子中間的文本顏色
例如:以下句子是我需要顯示的。
海#xyz你怎麼樣。
我正在學習#abc android。
在此我必須要改變的話「#xyz」顏色「#abc」即,它與字符「#」開始。
我用了一些字符串函數split(),subString()。但我沒有得到我需要的東西。
所以,請指導我如何解決這個問題。
我需要更改在句子中隨機出現的字符串的顏色。如何更改android中的句子中間的文本顏色
例如:以下句子是我需要顯示的。
海#xyz你怎麼樣。
我正在學習#abc android。
在此我必須要改變的話「#xyz」顏色「#abc」即,它與字符「#」開始。
我用了一些字符串函數split(),subString()。但我沒有得到我需要的東西。
所以,請指導我如何解決這個問題。
使用SpannableString爲前:
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>"));
您可以用'Spannablestring'。 http://developer.android.com/reference/android/text/SpannableString.html – Raghunandan