Выделение Text Color с помощью Html.fromHtml () в Android?

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

Но мне понравится знать, является ли это надлежащим способом сделать его или нет.

Сообщите мне свои представления об этом.

80
задан Raghav Sood 19 March 2013 в 14:47
поделиться

3 ответа

Или гораздо проще, чем работать с Spannables вручную, поскольку вы не сказали, что хотите выделить фон, только текст:

String styledText = "This is <font color='red'>simple</font>.";
textView.setText(Html.fromHtml(styledText), TextView.BufferType.SPANNABLE);
191
ответ дан 24 November 2019 в 09:45
поделиться

Это может быть достигнуто с помощью Spannable String. Вам нужно будет импортировать следующее

import android.text.SpannableString; 
import android.text.style.BackgroundColorSpan; 
import android.text.style.StyleSpan;

И затем вы можете изменить фон текста, используя что-то вроде следующего:

TextView text = (TextView) findViewById(R.id.text_login);
text.setText("");
text.append("Add all your funky text in here");
Spannable sText = (Spannable) text.getText();
sText.setSpan(new BackgroundColorSpan(Color.RED), 1, 4, 0);

Где это выделит символы в позициях 1–4 красным цветом. Надеюсь это поможет!

12
ответ дан 24 November 2019 в 09:45
поделиться

Альтернативное решение: вместо этого используйте WebView. С HTML легко работать.

WebView webview = new WebView(this);

String summary = "<html><body>Sorry, <span style=\"background: red;\">Madonna</span> gave no results</body></html>";

webview.loadData(summary, "text/html", "utf-8");
4
ответ дан 24 November 2019 в 09:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: