如何在 Jetpack Compose Desktop 中加载字体?

Lux*_*lem 11 kotlin android-jetpack-compose-text compose-desktop

在 Android 版 Jetpack Compose 中,您可以执行以下操作:


val fontFamily = FontFamily(
    Font(
        resId = R.font.my_font_400_regular,
        weight = FontWeight.W400,
        style = FontStyle.Normal
    ),
    Font(
        resId = R.font.my_font_400_italic,
        weight = FontWeight.W400,
        style = FontStyle.Italic
    )
)


Run Code Online (Sandbox Code Playgroud)

但对于桌面版,文件结构不同,我无法访问,R.font.my_font_400_regular因为“R”是 Android 资源功能。

Sau*_*rat 19

将您的.ttf字体文件放入src > main > resources文件夹中。然后使用:

val fontFamily = FontFamily(
    Font(
        resource = "font.ttf",
        weight = FontWeight.W400,
        style = FontStyle.Normal
    )
)
Run Code Online (Sandbox Code Playgroud)

  • 这里的字体是 androidx.compose.ui.text.platform.Font (10认同)

Ale*_*son 5

另外,如果您使用多种字体并希望它们各自位于资源中自己的子目录中,例如

资源/字体/示例1/

然后确保在创建字体时将该目录包含在“资源”字符串中。

Font(
    resource = "fonts/example1/examplefont_bold.ttf",
    weight = FontWeight.Bold,
    style = FontStyle.Normal
)
Run Code Online (Sandbox Code Playgroud)

可能很明显,但以防万一。