Відповіді:
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()
методом:
Нижче наведено код за замовчуванням Typeface
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"
Або ви можете встановити свій fav шрифт (з активів). Детальніше див. за посиланням
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);
Стандартний спосіб зробити це - використовувати власні стилі. Ex-
В 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);
Ви можете спробувати так:
<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 ...
І як пояснено тут, String Resources для розробників Android, якщо вам потрібно використовувати параметри у своєму стильовому текстовому ресурсі, ви повинні уникати початкових дужок
<resources>
<string name="welcome_messages">Hello, %1$s! You have <b>%2$d new messages</b>.</string>
</resources>
та формат викликуHtml (рядок)
Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
CharSequence styledText = Html.fromHtml(text);
Під час використання спрощених тегів з 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);
Або якщо ви хочете встановити інший шрифт та його шрифт. Додайте його до активу чи сирої папки, а потім використовуйте як
Typeface face= Typeface.createFromAsset(getAssets(), "font/font.ttf");
tv1.setTypeface(face);
Typeface face1= Typeface.createFromAsset(getAssets(), "font/font1.ttf");
tv2.setTypeface(face1);