在androidx上使用自定义字体

时间:2019-01-17 09:47:00

标签: android fonts androidx

我目前正在尝试向使用Androidx而不是旧的支持库的Android项目中添加自定义字体系列。

但是我似乎找不到使用AndroidX库在旧版SDK版本(23+)中支持字体系列的方法,我在网上找到的所有内容都提到了旧的支持库。

我当前的字体系列文件如下:

<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>

是否可以通过androidx库在较早的SDK版本上实现此目的?

2 个答案:

答案 0 :(得分:1)

在XML文件中,应将TextView替换为androidx.appcompat.widget.AppCompatTextView

答案 1 :(得分:0)

您必须使用appandroid属性声明字体。因此,它将适用于“所有” 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