Богатый текст в текстовом виде

Мне нужно создать «Информацию» для моей программы. Я бы хотел заполнить информационный текст несколькими цветами, стилем, шрифтами, ecc.

Я нашел это: http://www.chrisumbel.com/article/android_textview_rich_text_spannablestring

Есть ли другой способ (лучше просто) сделать это?

благодаря!

Solutions Collecting From Web of "Богатый текст в текстовом виде"

Прочитав название вопроса, я был готов дать вам ссылку на эту точную статью. Я нашел использование SpannableString и SpannableString достаточно мощным. Альтернативой было бы использовать форматирование HTML для вашего текста, что можно сделать с помощью Html.fromHtml () .

Тем не менее, не совсем ясно, какие HTML-теги поддерживаются, так как документация просто читает:

Этот класс обрабатывает строки HTML в отображаемом стилизованном тексте. Не все HTML-теги поддерживаются.

Итак, для хорошего решения я бы определенно пошел с подходом SpannableString в статье. Этот метод очень удобен на практике, поскольку вы также можете создавать собственные классы span, расширяющие существующие (например, если вы хотите, чтобы в разделе текста использовался собственный шрифт, который не был встроен).

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

Библиотека позволяет отформатировать диапазон текста (сделайте его полужирным, подчеркивающим, курсивным, комбинацией и т. Д.), А также покрасьте его (цвет текста и подсветку). В следующем выпуске я планирую разрешить настраиваемые интервалы шрифтов и т. Д.

Чтобы использовать это просто, просто добавьте следующую зависимость к вашему файлу gradle:

 compile 'com.androidessence.lib:richtextview:1.0.1' 

Предположим, вы хотите сделать первые четыре символа полужирным, вы можете просто сделать следующий вызов:

 myRichTextView.formatSpan(0, 4, RichTextView.FormatType.BOLD); 

Обратите внимание, что параметр конечного индекса не является включительным, поэтому, говоря (0 -> 4), мы на самом деле являемся жирным индексом (0 -> 3).

Если вы хотите сделать полужирным и подчеркнутым, используйте EnumSet:

 myRichTextView.formatSpan(0, 4, EnumSet.of(RichTextView.FormatType.BOLD, RichTextView.FormatType.UNDERLINE)); 

Для получения последней информации см. Репозиторий Github, связанный выше, хотя я попытаюсь обновить этот ответ в любое время, когда он устареет.

Когда мне понадобился форматированный текст в прошлом, я создал html-файл с форматированием, застрял его в каталоге res / raw и загрузил его в WebView. Я никогда не пробовал его с разными шрифтами, но не уверен, что это сработает, но полужирный, курсив и т. Д.