пятница, 5 августа 2011 г.

Выделение слов в тексте.

Постановка задачи:  Нужно выделять некоторые слова в тексте. Пример выделенного слова: Слово .
Проблема: Не полная поддержка 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;
  }





Скриншот приложения :

Комментариев нет:

Отправить комментарий