如何在桌面版 Jetpack Compose 中使用字体?

时间:2021-06-17 13:58:30

标签: kotlin fonts jvm desktop jetbrains-compose

我正在尝试在 JetBrains Compose for Desktop 中使用放置在 src/main/resources/fonts/ 中的一些字体 ttf 文件。如何使用函数 androidx.compose.ui.text.font.Font() 中的字体文件?我尝试使用许多在线文章中提到的 R.fonts.font_file,但它似乎只适用于 Android。

我知道有 this。他正面临着我在这里遇到的完全相同的问题。我试过这个。不幸的是,它没有奏效。我上面链接的问题的唯一答案是,解决方案是将字体文件放在 src/main/resources 中并使用:

Font(
    resource = "font.ttf",
    weight = FontWeight.W400,
    style = FontStyle.Normal,
)

但它不起作用。我机器上的 androidx.compose.ui.text.font.Font() 函数需要 3 个参数,resIdweightstyle

public fun Font(
    resId: Int,
    weight: FontWeight,
    style: FontStyle,
)

(复制自创意工具提示)

如您所见,它需要一个 resId: Int。我应该如何在 Int 中指定它?

由于 JetBrains Compose for Desktop 仍处于早期测试阶段,我在网上能找到的资源真的很稀缺。我尝试搜索“kotlin 资源 ID”以找到将字体文件作为 ID 引用的方法,但我能找到的都是真正针对 Android 的东西。我也尝试搜索“jetpack compose桌面字体”和“jetbrains compose字体”,得到的结果也充斥着Android的东西。是的,我尝试在搜索查询中使用“-android”,但结果中剩下的所有内容都无关紧要。我链接的问题是我唯一能找到的关于桌面字体的 Jetpack Compose 的问题。

这是我的大部分project structure

这是当我将鼠标悬停在 Font() 上时 IntelliJ Idea 显示的 tooltip。没那么有用吧?

科特林版本:1.5.10
Jetpack compose 版本:0.5.0-build225(最新预发布) 顺便说一句,如果重要的话,我正在 MacBook 上使用 Manjaro Linux。

另外,我的英语很差,所以我可能犯了一些语法错误。

0 个答案:

没有答案