Управление цветом и стилем при просмотре текста - PullRequest
2 голосов
/ 03 июля 2011

хорошо, представьте, что у нас есть такой текст

String s="123 45678 91011122314 1516";

Теперь моя проблема в том, что я так хочу сказать

textview.setText(stylemystring(s));

и я хочу, чтобы «123» было жирным и красным, 45678 - курсивом и синим и т. Д.

Я нахожу довольно проблематичным при стилизации этих вещей, есть решения с htmlformat, но дело в том, что размер текста, который должен быть красным или синим, динамический, поэтому мне нужно что-то более гибкое.

спасибо

Ответы [ 2 ]

10 голосов
/ 03 июля 2011

Примерно так должно работать:

    SpannableStringBuilder text = new SpannableStringBuilder("123 45678 91011122314 1516");
    text.setSpan(new ForegroundColorSpan(Color.RED), 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    text.setSpan(new ForegroundColorSpan(Color.BLUE), 4, 9, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    text.setSpan(new StyleSpan(Typeface.BOLD), 4, 9, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textView.setText(text, TextView.BufferType.SPANNABLE);

Вы можете добавлять разные стили к разным частям строки. На основании http://developer.android.com/resources/faq/commontasks.html#selectingtext

2 голосов
/ 03 июля 2011

Я думаю, вам придется разделить его на несколько строк, чтобы достичь этого.

Взгляните на эту ссылку

Я думаю, это то, что вы ищете.

...