wierzę, jest łatwiejszy, bardziej przyjemny sposób, aby przejść o osiągnięcie tego celu: po prostu stworzyć backgroundColorSpan i dodać go do SpannableString . Coś wzdłuż tych linii:
public static SpannableString buildBackgroundColorSpan(SpannableString spannableString,
String text, String searchString, int color) {
int indexOf = text.toUpperCase().indexOf(searchString.toUpperCase());
try {
spannableString.setSpan(new BackgroundColorSpan(color), indexOf,
(indexOf + searchString.length()), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
} catch (Exception e) {
}
return spannableString;
}
Gdzie „spannableString” jest obiektem SpannableString tworzone i zakłada się, że zainicjowane z „tekst”; "searchString" reprezentuje fragment tekstu, który chcesz "podświetlić" w swoim TextView, i "koloruj" kolor tła, na który powinien zostać ustawiony "podświetlony" tekst.
String text = "The Quick Brown Fox Jumps over the Lazy Dog";
String searchString = "brown";
int color = Color.parseColor("#FFF5F19E");
SpannableString spannableString = new SpannableString(text);
spannableString = StringUtils.buildBackgroundColorSpan(spannableString, text, searchString, color);
Myślę, że to powinno wystarczyć.
Dzięki
Hi Ole, masz rozwiązany to pytanie? Chciałbym również potrzebują takiego samego zachowania – alfdev
Możliwa duplikat [TextView z kolorem tła i odstępy między wierszami] (https://stackoverflow.com/questions/22939862/textview-with-background-color-and-line-spacing) –