Ответы:
textView.setTypeface(null, Typeface.BOLD_ITALIC);
textView.setTypeface(null, Typeface.BOLD);
textView.setTypeface(null, Typeface.ITALIC);
textView.setTypeface(null, Typeface.NORMAL);
Чтобы сохранить предыдущий шрифт
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC)
textView.setTypeface(textView.getTypeface(), Typeface.NORMAL);
не удалит жирный или курсивный стиль из TextView
. Вам нужно будет использовать textView.setTypeface(null, Typeface.NORMAL);
для этого.
textView.setTypeface(Typeface.create(textView.getTypeface(), Typeface.NORMAL), Typeface.NORMAL);
Попробуйте установить это TextView
жирным шрифтом или курсивом
textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC);
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC);
tv.setTypeface(Typeface.create(tv.getTypeface(), Typeface.NORMAL));
tv.setTypeface(null, Typeface.BOLD);
не сделает ли это то же самое (очистить существующий стиль шрифта)?
Вы можете сделать программно используя setTypeface()
:
textView.setTypeface(null, Typeface.NORMAL); // for Normal Text
textView.setTypeface(null, Typeface.BOLD); // for Bold only
textView.setTypeface(null, Typeface.ITALIC); // for Italic
textView.setTypeface(null, Typeface.BOLD_ITALIC); // for Bold and Italic
Вы можете установить непосредственно в XML-файле, <TextView />
например:
android:textStyle="normal"
android:textStyle="normal|bold"
android:textStyle="normal|italic"
android:textStyle="bold"
android:textStyle="bold|italic"
with in Java and without using XML
Кстати, это поможет и другим.
У вас есть два варианта:
Вариант 1 (работает только жирным шрифтом, курсивом и подчеркиванием):
String s = "<b>Bolded text</b>, <i>italic text</i>, even <u>underlined</u>!"
TextView tv = (TextView)findViewById(R.id.THE_TEXTVIEW_ID);
tv.setText(Html.fromHtml(s));
Вариант 2:
Используйте Spannable ; это сложнее, но вы можете динамически изменять атрибуты текста (не только полужирный / курсив, но и цвета).
typeFace
вы можете установить единый стиль для всего текста.
Вы можете сделать программно, используя setTypeface()
метод:
Ниже приведен код для шрифта по умолчанию
textView.setTypeface(null, Typeface.NORMAL); // for Normal Text
textView.setTypeface(null, Typeface.BOLD); // for Bold only
textView.setTypeface(null, Typeface.ITALIC); // for Italic
textView.setTypeface(null, Typeface.BOLD_ITALIC); // for Bold and Italic
и если вы хотите установить пользовательский шрифт :
textView.setTypeface(textView.getTypeface(), Typeface.NORMAL); // for Normal Text
textView.setTypeface(textView.getTypeface(), Typeface.BOLD); // for Bold only
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC); // for Italic
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC); // for Bold and Italic
Вы можете установить непосредственно в XML-файл <TextView />
следующим образом:
android:textStyle="normal"
android:textStyle="normal|bold"
android:textStyle="normal|italic"
android:textStyle="bold"
android:textStyle="bold|italic"
Или вы можете установить свой любимый шрифт (из активов). для получения дополнительной информации см ссылку
TextView text = (TextView)findViewById(R.id.THE_TEXTVIEW_ID);
Теперь установите textview
свойства ..
text.setTypeface(null, Typeface.BOLD); //-- for only bold the text
text.setTypeface(null, Typeface.BOLD_ITALIC); //-- for bold & italic the text
text.setTypeface(null, Typeface.ITALIC); // -- for italic the text
Это было бы
yourTextView.setTypeface(null,Typeface.DEFAULT_BOLD);
и курсив должен быть в состоянии с заменой Typeface.DEFAULT_BOLD
на Typeface.DEFAULT_ITALC
.
Дайте мне знать, как это работает.
Используйте textView.setTypeface(Typeface tf, int style);
для установки свойства стиля объекта TextView
. Смотрите документацию для разработчиков для получения дополнительной информации.
Попробуй это:
textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC);
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC);
Попробуй это:
TextView textview = (TextView)findViewById(R.id.textview_idname);
textview.setTypeface(null,Typeface.BOLD);
Стандартный способ сделать это - использовать пользовательские стили. бывший
В styles.xml
добавление следующее.
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="MyApp.TextAppearance.LoginText">
<item name="android:textStyle">bold|italic</item>
</style>
Примените этот стиль к вашему TextView
следующим.
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyApp.TextAppearance.LoginText" />
Один из способов сделать это:
myTextView.setTypeface(null, Typeface.ITALIC);
myTextView.setTypeface(null, Typeface.BOLD_ITALIC);
myTextView.setTypeface(null, Typeface.BOLD);
myTextView.setTypeface(null, Typeface.NORMAL);
Другой вариант, если вы хотите сохранить предыдущую гарнитуру и не хотите потерять ранее примененную, тогда:
myTextView.setTypeface(textView.getTypeface(), Typeface.NORMAL);
myTextView.setTypeface(textView.getTypeface(), Typeface.BOLD);
myTextView.setTypeface(textView.getTypeface(), Typeface.ITALIC);
myTextView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC);
textView.setTypeface(null, Typeface.BOLD_ITALIC);
textView.setTypeface(null, Typeface.BOLD);
textView.setTypeface(null, Typeface.ITALIC);
textView.setTypeface(null, Typeface.NORMAL);
Чтобы сохранить предыдущий шрифт
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC)
Вы можете попробовать так:
<string name="title"><u><b><i>Your Text</i></b></u></string>
Самый простой способ сделать это на основе критериев выбора стиля:
String pre = "", post = "";
if(isBold){
pre += "<b>"; post += "</b>";
}
if(isItalic){
pre += "<i>"; post += "</i>";
}
if(isUnderline){
pre += "<u>"; post += "</u>";
}
textView.setText(Html.fromHtml(pre + editText.getText().toString()+ post));
// you can also use it with EidtText
editText.setText(Html.fromHtml(pre + editText.getText().toString()+ post));
Поскольку я хочу использовать собственный шрифт, у меня работает только сочетание нескольких ответов. Очевидно настройки в моем layout.xml
лайке android:textStlyle="italic"
были проигнорированы AOS. Итак, в конце концов мне пришлось сделать следующее: в strings.xml
целевой строке было объявлено:
<string name="txt_sign"><i>The information blah blah ...</i></string>
затем дополнительно в коде:
TextView textSign = (TextView) findViewById(R.id.txt_sign);
FontHelper.setSomeCustomFont(textSign);
textSign.setTypeface(textSign.getTypeface(), Typeface.ITALIC);
Я не пробовал Spannable
вариант (который я ДОЛЖЕН работать), но
textSign.setText(Html.fromHtml(getString(R.string.txt_sign)))
не имел никакого эффекта. Кроме того, если я удалить italic tag
из strings.xml
оставляя setTypeface()
все в одиночку это не имеет никакого эффекта либо. Хитрый Android ...
И, как объяснено здесь, строковые ресурсы для разработчиков Android, если вам нужно использовать параметры в вашем текстовом ресурсе со стилем, вы должны избежать открывающих скобок
<resources>
<string name="welcome_messages">Hello, %1$s! You have <b>%2$d new messages</b>.</string>
</resources>
и вызвать formatHtml (строка)
Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
CharSequence styledText = Html.fromHtml(text);
Это единственное, что работало для меня на OnePlus 5T, настроенном со шрифтом OnePlus Slate ™:
textView.setTypeface(Typeface.create(textView.getTypeface(), useBold ? Typeface.BOLD : Typeface.NORMAL));
Другие методы заставили бы его вернуться к Roboto, когда он либо BOLD, либо NORMAL.
При использовании упрощенных тегов с AndroidX рассмотрите возможность использования HtmlCompat.fromHtml ()
String s = "<b>Bolded text</b>, <i>italic text</i>, even <u>underlined</u>!"
TextView tv = (TextView)findViewById(R.id.THE_TEXTVIEW_ID);
tv.setText(HtmlCompat.fromHtml(s, FROM_HTML_MODE_LEGACY));
Лучший способ это определить в styles.xml
<style name="common_txt_style_heading" parent="android:style/Widget.TextView">
<item name="android:textSize">@dimen/common_txtsize_heading</item>
<item name="android:textColor">@color/color_black</item>
<item name="android:textStyle">bold|italic</item>
</style>
И обновить его в TextView
<TextView
android:id="@+id/txt_userprofile"
style="@style/common_txt_style_heading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/margin_small"
android:text="@string/some_heading" />
1) Вы можете установить его с помощью TypeFace. 2) Вы можете напрямую использовать в strings.xml (в вашей папке значений) 3) Вы можете String myNewString = "Это мой жирный текст Это моя строка курсива Это моя подчеркнутая строка
Вы можете установить другой шрифт, используя пример, приведенный ниже -
textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC);
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC);
Или если вы хотите установить другой шрифт и его шрифт. Добавьте его в ресурс или в папку raw, а затем используйте как
Typeface face= Typeface.createFromAsset(getAssets(), "font/font.ttf");
tv1.setTypeface(face);
Typeface face1= Typeface.createFromAsset(getAssets(), "font/font1.ttf");
tv2.setTypeface(face1);