Использование собственного шрифта для всех текстов в моем приложении - PullRequest
0 голосов
/ 01 июля 2018

Следуя этой процедуре , я хочу установить шрифт всего текста в приложении для Android на конкретное имя. Это не английский шрифт, поэтому я вставил его в app\src\main\assets\fonts и написал следующее в styles.xml

    <item name="android:fontFamily">@fonts/my.ttf</item>
    <item name="fontFamily">@fonts/my.ttf</item>

Однако после сборки и запуска приложения в Android Studio (эмулятор всплывает) я вижу шрифт по умолчанию, а не шрифт, который я указал.

Кстати, в этом посте он использует @font. Однако, если я пишу это, я вижу ошибку, что шрифт не найден. Изменяя @fonts, ошибка компиляции устраняется!

Чего здесь не хватает?

Ответы [ 2 ]

0 голосов
/ 01 июля 2018

Если вы хотите переопределить шрифт для всех представлений, вы можете использовать этот подход:

public static Typeface overrideFont(Context context,
                                String defaultFontNameToOverride,
                                String customFontFileNameInAssets) {
    try {
        final Typeface customFontTypeface = Typeface.createFromAsset(context.getAssets(), customFontFileNameInAssets);
        final Field defaultFontTypefaceField = Typeface.class.getDeclaredField(defaultFontNameToOverride);
        defaultFontTypefaceField.setAccessible(true);
        defaultFontTypefaceField.set(null, customFontTypeface);
        return customFontTypeface;
    } catch (NoSuchFieldException e) {
        Logger.e(e);
        return null;
    } catch (IllegalAccessException e) {
        Logger.e(e);
        return null;
    }
}

А затем в методе onCreate () вашего класса Application просто вызовите этот метод следующим образом:

TypefaceUtil.overrideFont(this,
            "SERIF",
            "fonts/CaviarDreams.ttf");

Do NOT не забудьте поместить ваш файл шрифта .ttf в папку активов

0 голосов
/ 01 июля 2018

Создание семейства шрифтов

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

Чтобы создать семейство шрифтов, выполните следующие действия в Android Studio:

  1. Щелкните правой кнопкой мыши папку шрифтов и выберите «Создать»> «Файл ресурсов шрифта». Откроется окно «Новый файл ресурсов».
  2. Введите имя файла и нажмите кнопку ОК. Новый ресурс шрифта XML открывается в редакторе.
  3. Включите каждый элемент шрифта, стиль и вес в элемент. Следующий XML-код иллюстрирует добавление связанных со шрифтом атрибутов в XML-код ресурса шрифта:

      **<font-family 
            <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>**
    

Добавление шрифтов в TextView

Чтобы установить шрифт для TextView, выполните одно из следующих действий:

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

Проверьте это для полной документации.

Надеюсь, это поможет вам.

...