Один TextView с многоцветным текстом - PullRequest
159 голосов
/ 23 мая 2011

Как видно из названия, я хочу знать, возможно ли получить два разноцветных символа в одном элементе textview.

Ответы [ 13 ]

1 голос
/ 01 мая 2014

Попробуйте это:

mBox = new TextView(context);
mBox.setText(Html.fromHtml("<b>" + title + "</b>" +  "<br />" + 
      "<small>" + description + "</small>" + "<br />" + 
      "<small>" + DateAdded + "</small>"));
0 голосов
/ 12 июля 2019

С API 24 у вас есть FROM_HTML_OPTION_USE_CSS_COLORS, так что вы можете определять цвета в CSS вместо того, чтобы повторять их все время с помощью font color=" Намного понятнее - когда у вас есть html и вы хотите выделить некоторые предопределенные теги - вам просто нужно добавить фрагмент CSS в верхней части вашего html

0 голосов
/ 05 февраля 2016

Потрясающие ответы!Я смог использовать Spannable для создания текста цвета радуги (так что это можно повторить для любого массива цветов).Вот мой метод, если он кому-нибудь поможет:

private Spannable buildRainbowText(String pack_name) {
        int[] colors = new int[]{Color.RED, 0xFFFF9933, Color.YELLOW, Color.GREEN, Color.BLUE, Color.RED, 0xFFFF9933, Color.YELLOW, Color.GREEN, Color.BLUE, Color.RED, 0xFFFF9933, Color.YELLOW, Color.GREEN, Color.BLUE, Color.RED, 0xFFFF9933, Color.YELLOW, Color.GREEN, Color.BLUE};
        Spannable word = new SpannableString(pack_name);
        for(int i = 0; i < word.length(); i++) {
            word.setSpan(new ForegroundColorSpan(colors[i]), i, i+1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        }
        return word;
    }

И тогда я просто устанавливаю текст (buildRainboxText (имя_пакета));Обратите внимание, что все слова, которые я передаю, имеют длину менее 15 символов, и это просто повторяет 5 цветов 3 раза - вам нужно настроить цвета / длину массива для вашего использования!

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