【问题标题】:Use custom fonts with androidx通过 androidx 使用自定义字体
【发布时间】:2019-01-17 09:47:00
【问题描述】:

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

但我似乎无法找到一种方法来使用 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 版本上进行这项工作?

【问题讨论】:

  • 是的,我也有这个问题。我的应用程序与一大群自定义字体完美配合。然后我们从 v7 升级到 androidX,然后噗:不再有自定义字体(但仅限于模拟器和设备——自定义字体仍然在预览窗格中完美显示,叹息)!谢谢谷歌!
  • 我遇到了类似的问题,有什么解决办法吗?
  • 祝你好运@ScottBiggs,你能帮忙解决这个问题吗
  • @SaadBilal 这很奇怪——有时我可以让它工作,有时我不能。它似乎取决于设备、Android 版本以及风向。显然,我不知道实际发生了什么。叹息。

标签: android fonts androidx


【解决方案1】:

您必须使用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

【讨论】:

  • 感谢您的回复,但即使进行了此更改,我也无法使其在 Android 8 之前的设备上运行。您知道我需要哪个 androidx 库才能使其在旧版本上运行吗?我在网上看到的都是com.android.support:support-v4,但这与androidx 无关。
  • 我稍微编辑了我的答案。请再检查一次。如果它不起作用,你能显示一些代码等吗?干杯
  • 是的,OP 正在询问使用什么 AndroidX 包来使 SupportV4 正常工作 - 否则代码会导致 Lint 失败
  • 我也遇到了编译错误。我需要在 gradle 文件中包含什么库才能使其正常工作?
  • 运气好吗?我也被困住了
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 2011-08-24
    • 2012-07-13
    • 2016-06-09
    • 1970-01-01
    • 2016-10-15
    • 2019-12-26
    • 1970-01-01
    相关资源
    最近更新 更多