Используйте пользовательские шрифты с androidx - PullRequest
0 голосов
/ 17 января 2019

В настоящее время я пытаюсь добавить семейство пользовательских шрифтов в свой проект Android, который использует Androidx вместо старой библиотеки поддержки.

Но я не могу найти способ поддержки семейств шрифтов в старых версиях SDK (23+) с библиотеками AndroidX, и все, что я нахожу в Интернете, упоминает старую библиотеку поддержки.

Мой текущий файл семейства шрифтов выглядит так:

<font-family
             xmlns:app="http://schemas.android.com/apk/res-auto">

    <font
        app:fontStyle="normal"
        app:fontWeight="500"
        app:font="@font/raleway_medium"/>

    <font
        app:fontStyle="normal"
        app:fontWeight="700"
        app:font="@font/raleway_bold" />

    <font
        app:fontStyle="normal"
        app:fontWeight="600"
        app:font="@font/raleway_semibold" />

</font-family>

Есть ли способ заставить это работать на старых версиях SDK с библиотеками androidx?

1 Ответ

0 голосов
/ 17 января 2019

Вы должны объявить свои шрифты с app и с атрибутами android. Так что это будет работать для "всех" версий SDK.

<font
    android:font="@font/myfont"
    android:fontStyle="normal"
    android:fontWeight="400"
    app:font="@font/myfont"
    app:fontStyle="normal"
    app:fontWeight="400" />

Когда вы объявили свой шрифт, вы можете применить его в XML через:

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="android:fontFamily">@font/customfont</item>
    <item name="fontFamily">@font/customfont</item>
...

или программно через:

val typeface = ResourcesCompat.getFont(context, R.font.customfont)
textView.typeface = typeface
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...