хочет иметь несколько стилей отображения текста в одном текстовом представлении

1

Я работаю над Android-приложением. Я хочу знать, как я могу сделать несколько слов жирным шрифтом, а некоторые - курсивом, например, у меня есть текстовое представление с текстом HELLOO. Теперь я хочу отобразить текст, подобный этому, в текстовом виде

HELL OO

скажите, пожалуйста, как достичь этого через стили в android?

Теги:
android-layout
styles

5 ответов

3
Лучший ответ

Скажем, у вас есть TextView, а именно etx, используйте следующий код:


 final SpannableStringBuilder sb = new SpannableStringBuilder("HELLOO");

        final StyleSpan bss = new StyleSpan(android.graphics.Typeface.BOLD); // Span to make text bold
        final StyleSpan iss = new StyleSpan(android.graphics.Typeface.ITALIC);Span to make text italic
        sb.setSpan(bss, 0, 4, Spannable.SPAN_INCLUSIVE_INCLUSIVE); // make first 4 characters Bold 
        sb.setSpan(iss, 4, 6, Spannable.SPAN_INCLUSIVE_INCLUSIVE); // make last 2 characters Italic
        etx.setText(sb);

Основным преимуществом использования этого подхода является то, что вы можете форматировать текст динамически.

  • 0
    Когда вы используете SpannableStringBuilder, вы должны установить текст с помощью этого метода TextView: setText (int остаток, тип TextView.BufferType), поэтому ваш код должен быть: etx.setText (sb, TextView.BufferType.SPANNABLE);
  • 0
    @ GBouerat Я думаю, что вы говорите о setText (CharSequence text, TextView.BufferType type) не setText (int resid, TextView.BufferType type) . Я всегда получаю идеальный результат с setText (CharSequence text) метода setText (CharSequence text) . Итак, не могли бы вы объяснить, почему не следует использовать этот подход, и воспользоваться преимуществами вышеуказанных методов.
Показать ещё 5 комментариев
1

<b> устарел. используйте <strong> и <em> вместо <i>.

text1.setText(Html.fromHtml("<strong>bold text</strong> normal text <em>italic text</em> "));
0

Если вы хотите сделать это полужирным шрифтом, используйте тег b.Если вы хотите, чтобы это было курсивом, используйте тег. Если вы хотите сделать слово полужирным или курсивом, поместите это одно слово внутри тега.

 <resources> 
<string name="register"> <u><b><i>SignUp</i></b></u> </string>
</resources>
  • 0
    спасибо 4 ур помощь большое спасибо !!!!
0

Если у вас есть String в strings.xml, тогда.

<string name="startup"><b><i>HELL</i></b><i>oo</i></string> 

Вы можете использовать HTML-теги здесь внутри <string> </string>

  • 0
    спасибо 4 ур помощь большое спасибо !!!!
-1
String text="<html>"+"<b>"+"Hell"+"</b>"+"<i>"+"oo"+"</i>"+"</html>";

Ещё вопросы

Сообщество Overcoder
Наверх
Меню