Как установить белый цвет для любой буквы в TextView, кроме цифр и запятых в Android? - PullRequest
1 голос
/ 26 сентября 2019

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

Пример

19,319,931 coins
//19,319,931 should has yellow color.
//coins should has has white color

Ответы [ 2 ]

4 голосов
/ 26 сентября 2019

Вы можете использовать Spannable TextView

A Spannable TextView можно использовать в Android, чтобы выделить определенную часть текста с другим цветом, стилем, размером,и / или событие щелчка в одном виджете TextView.

Так попробуйте следующее:

    String coinText = txtDiamonds.getText().toString();
    char currentChar;
    Spannable spannable = new SpannableString(coinText);
    ForegroundColorSpan color;
    for (int i = 0; i < coinText.length(); i++) {
        currentChar = coinText.charAt(i);
        if (Character.isDigit(currentChar) || ((int) currentChar) == ((int) ','))
            color = new ForegroundColorSpan(Color.YELLOW);
        else
            color = new ForegroundColorSpan(Color.WHITE);
        spannable.setSpan(color, i, i + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    }
    txtDiamonds.setText(spannable);
2 голосов
/ 26 сентября 2019

Вы также можете использовать регулярные выражения следующим образом

Spannable spannable = new SpannableString(myTextView.getText().toString());
// Matching non-digits
Matcher matcher = Pattern.compile("\\D+").matcher(text);
while (matcher.find()) {
    spannable.setSpan(new ForegroundColorSpan(Color.WHITE), matcher.start(), matcher.end(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}

// Matching digits followed by "," 0 or 1 time
matcher = Pattern.compile("\\d+,?").matcher(text);
while (matcher.find()) {
    spannable.setSpan(new ForegroundColorSpan(Color.YELLOW), matcher.start(), matcher.end(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}

myTextView.setText(spannable);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...