Я работаю над Android-приложением. Я хочу знать, как я могу сделать несколько слов жирным шрифтом, а некоторые - курсивом, например, у меня есть текстовое представление с текстом HELLOO. Теперь я хочу отобразить текст, подобный этому, в текстовом виде
HELL OO
скажите, пожалуйста, как достичь этого через стили в android?
Скажем, у вас есть 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);
Основным преимуществом использования этого подхода является то, что вы можете форматировать текст динамически.
setText (CharSequence text, TextView.BufferType type)
не setText (int resid, TextView.BufferType type)
. Я всегда получаю идеальный результат с setText (CharSequence text)
метода setText (CharSequence text)
. Итак, не могли бы вы объяснить, почему не следует использовать этот подход, и воспользоваться преимуществами вышеуказанных методов.
<b>
устарел. используйте <strong>
и <em>
вместо <i>
.
text1.setText(Html.fromHtml("<strong>bold text</strong> normal text <em>italic text</em> "));
Если вы хотите сделать это полужирным шрифтом, используйте тег b.Если вы хотите, чтобы это было курсивом, используйте тег. Если вы хотите сделать слово полужирным или курсивом, поместите это одно слово внутри тега.
<resources>
<string name="register"> <u><b><i>SignUp</i></b></u> </string>
</resources>
Если у вас есть String в strings.xml, тогда.
<string name="startup"><b><i>HELL</i></b><i>oo</i></string>
Вы можете использовать HTML-теги здесь внутри <string> </string>
String text="<html>"+"<b>"+"Hell"+"</b>"+"<i>"+"oo"+"</i>"+"</html>";