установить черный цвет фона только для символов и белый цвет между двумя символами TextView - PullRequest
0 голосов
/ 24 мая 2018

как мне установить черный цвет фона только для символов и белый фоновый цвет между символами только в одной студии TextView android Пример на изображении

Как и на изображении, у которого A имеет фончерный цвет, и пространство между A и B имеет белый цвет фона.Как этого добиться?

enter image description here

введите описание изображения здесь

1 Ответ

0 голосов
/ 24 мая 2018

В этом случае вы должны использовать SpannableString.Предположим, у вас есть String

A B C D E F G

, и вам нужно установить черный фон только под B и E буквами.Этого можно достичь следующим образом (примеры написаны на Kotlin ):

fun highlight(text: String, words: List<String>) {
    val spannable = SpannableString(text)

    words.forEach {
        var index = text.indexOf(it)
        val length = it.length

        while (index >= 0) {
            highlightWord(spannable, index, length)

            if (index >= 0) {
                index += length
            }
            index = text.indexOf(it, index)
        }
    }

    // TODO: set spannable to the TextView
}

fun highlightWord(spannable: Spannable, index: Int, length: Int) {
    spannable.setSpan(BackgroundColorSpan(Color.BLACK), index, index + length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
}

Здесь метод highlight ищет пропущенные слова в пропущенном тексте и выделяет каждое вхождение, используя цвет Color.BLACK,Чтобы выделить пробелы белым цветом, вы можете сделать то же самое, передав " " пробел String, или просто установить белый фон для всего текстового представления.

...