Постановка задачи: Нужно выделять некоторые слова в тексте. Пример выделенного слова: Слово .
Проблема: Не полная поддержка html тегов в Android-е.
Версия Android-а: 1.6
Пример функции решающую эту задачу:
private Spanned toPrintAnotherColorsWords(String text) {
String[] words = new String[] {
"(УНИВЕР)",
"(ЭЛИТ)",
"(ПРЕМИУМ)",
"П",
"**"
};
int[] colors = new int[] {
Color.YELLOW,
Color.MAGENTA,
Color.MAGENTA,
0xFF900020,
0xFF7FFFD4
};
int[] startIndexes = new int[words.length];
int[] endIndexes = new int[words.length];
Spanned spanned = Html.fromHtml("<html><head></head><body>" + text + "</body><html>");
for (int i = 0; i < words.length; i++) {
startIndexes[i] = text.indexOf(" " + words[i] + " ") + 1;
if (startIndexes[i] > 0) {
endIndexes[i] = startIndexes[i] + words[i].length();
((Spannable)spanned).setSpan(new BackgroundColorSpan(colors[i]), startIndexes[i], endIndexes[i], 0);
}
}
return spanned;
}
Скриншот приложения :
Проблема: Не полная поддержка html тегов в Android-е.
Версия Android-а: 1.6
Пример функции решающую эту задачу:
private Spanned toPrintAnotherColorsWords(String text) {
String[] words = new String[] {
"(УНИВЕР)",
"(ЭЛИТ)",
"(ПРЕМИУМ)",
"П",
"**"
};
int[] colors = new int[] {
Color.YELLOW,
Color.MAGENTA,
Color.MAGENTA,
0xFF900020,
0xFF7FFFD4
};
int[] startIndexes = new int[words.length];
int[] endIndexes = new int[words.length];
Spanned spanned = Html.fromHtml("<html><head></head><body>" + text + "</body><html>");
for (int i = 0; i < words.length; i++) {
startIndexes[i] = text.indexOf(" " + words[i] + " ") + 1;
if (startIndexes[i] > 0) {
endIndexes[i] = startIndexes[i] + words[i].length();
((Spannable)spanned).setSpan(new BackgroundColorSpan(colors[i]), startIndexes[i], endIndexes[i], 0);
}
}
return spanned;
}
Скриншот приложения :
Комментариев нет:
Отправить комментарий