Есть ли способ выделить некоторые слова курсивом при его отображении в TextView на Android? - PullRequest
0 голосов
/ 22 июня 2011

Мое приложение Android отображает текст в TextView.

Есть ли какие-либо теги или что-нибудь, чтобы поместить слова, которые я хочу выделить курсивом? Мне не нужно устанавливать TextView курсивом, потому что все предложение будет таким, и мне нужны только конкретные слова, выделенные курсивом.

Ответы [ 4 ]

1 голос
/ 22 июня 2011

Вам нужно использовать Spannable : см. Есть ли какой-нибудь пример с Spanned и Spannable текстом для примера.

0 голосов
/ 01 мая 2017

Эта функция устанавливает строку в качестве текста TextView и выделяет курсивом один или несколько интервалов внутри этой строки, если интервал или интервалы помечены тегами [i] и [/ i]. Конечно, его можно модифицировать для других типов стилей.

private void doItalicize(TextView xTextView, String xString) {
        ArrayList<Integer> IndexStart = new ArrayList<>();
        ArrayList<Integer> IndexEnd = new ArrayList<>();
        ArrayList<StyleSpan> SpanArray = new ArrayList<>();

        int i = 0;

        do {
            IndexStart.add(i, xString.indexOf("[i]"));
            IndexEnd.add(i, xString.indexOf("[/i]") - 3);
            xString = xString.replaceFirst("\\[i\\]", "");
            xString = xString.replaceFirst("\\[/i\\]", "");
            xTextView.setText(xString, TextView.BufferType.SPANNABLE);
            SpanArray.add(i, new StyleSpan(Typeface.ITALIC));
            Log.d(LOG_TAG, "i: " + i);
            i++;
        } while (xString.contains("[i]"));

        Spannable xSpannable = (Spannable) xTextView.getText();

        for (int j = 0; j < i; j++)
            xSpannable.setSpan(SpanArray.get(j), IndexStart.get(j), IndexEnd.get(j), Spanned
                    .SPAN_EXCLUSIVE_EXCLUSIVE);
    }
0 голосов
/ 22 июня 2011

Я согласен, это не проблема с базой данных. Если это не пользовательское приложение, над которым вы работаете, вам не повезло. Если это так, сохраните поле в базе данных как HTML.

0 голосов
/ 22 июня 2011

Казалось бы, решение состоит в том, чтобы сохранить содержимое в базе данных в виде HTML, а затем вывести HTML в текстовом представлении.

См. Следующую статью: Как отобразить HTML в TextView?

...