0

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

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

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

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

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

(从创意工具提示复制)

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

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

这是我的大部分项目结构

这是我将鼠标悬停在 IntelliJ Idea 上时显示的工具提示Font()。它没那么有用,是吗?

Kotlin 版本:1.5.10
Jetpack 组合版本:0.5.0-build225(最新的预发行版) 顺便说一句,如果重要的话,我在 MacBook 上使用 Manjaro Linux。

4

1 回答 1

1

你不能用androidx.compose.ui.text.font.Font这个。androidx.compose.ui.text.platform.Font改为导入。

也许违反直觉,androidx.compose.ui.text.platform.Font是 a 中的有效参数类型androidx.compose.ui.text.font.FontFamily,并且支持resource,weightstyle.

于 2021-08-19T10:11:19.480 回答