Как установить собственный шрифт в font_family.xml с атрибутом android: fontStyle = "bold" - PullRequest
0 голосов
/ 27 апреля 2018

Я хочу добавить собственный жирный шрифт в мой font_family.xml. Я не нашел жирного fontStyle="bold" в семействе разработчиков doc . Он имеет только атрибут normal или italic. Вот font_family.xml

<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
    <font
        android:fontStyle="normal"
        android:fontWeight="400"
        android:font="@font/lobster_regular" />
    <font
        android:fontStyle="italic"
        android:fontWeight="400"
        android:font="@font/lobster_italic" />
</font-family>

Так что я должен использовать стиль как

<style name="fontBoldStyle" parent="@android:style/TextAppearance.Small">
    <item name="android:fontFamily">@font/montserrat_semi_bold</item>
</style>

или как это

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fontFamily="@font/montserrat_semi_bold"/>

Мой вопрос

  1. Что делает атрибут fontStyle? Даже если я не указал курсив font_family.xml, а установил textStyle="italic", тогда мой шрифт курсив.
  2. как добавить пользовательский жирный шрифт в семейство шрифтов и установить android:fontStyle="bold" в font_family.xml, поэтому мне не нужно создавать разные стили, и мне просто нужно установить textStyle="bold"

Так что же такое решение, которое я могу установить 3 из моих шрифтов - normal, bold, italic для font_family.xml, и установить android:fontFamily="@font/font_family" в TextView, а затем я могу использовать android:textStyle="bold" или курсив, или нормальный?

Ответы [ 3 ]

0 голосов
/ 27 апреля 2018

Установка шрифта жирным шрифтом программным способом

mTextView.setTypeface(Typeface.ttf, Typeface.BOLD);

Или

mTextView.setTypeface(mTextView.getTypeface(), Typeface.BOLD);

или Вы можете использовать объект рисования и установить его в текст

0 голосов
/ 05 ноября 2018

Для вашего 2-го вопроса :

Вы можете добавить собственный жирный шрифт в font-family, определив шрифт с помощью fontWeight="700":

<font-family xmlns:android="http://schemas.android.com/apk/res/android">
    <font
        android:fontStyle="normal"
        android:fontWeight="400"
        android:font="@font/lobster_regular" />
    <font
        android:fontStyle="italic"
        android:fontWeight="400"
        android:font="@font/lobster_italic" />
    <font
        android:fontStyle="normal"
        android:fontWeight="700"
        android:font="@font/montserrat_semi_bold" />
</font-family>

Если TextView использует это font-family с fontStyle="bold", оно будет отображаться в montserrat_semi_bold

0 голосов
/ 27 апреля 2018

Есть способ сделать это, применив свойство android:textStyle в вашем layout.xml Вы можете сделать это:

<TextView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textStyle="bold" />
...