如何在IntelliJ IDEA中为Compose for Desktop项目添加新字体族?
在Compose for Desktop中添加自定义字体的方法
步骤1:放置字体文件
在项目根目录下创建src/main/resources/fonts文件夹(不存在则新建),将你的自定义字体文件(.ttf/.otf格式均可)放入该文件夹。Compose Desktop默认从resources目录读取资源,这和Android项目的res目录结构不同,注意别放错位置。
步骤2:确认资源打包配置
如果用Kotlin DSL的build.gradle.kts,默认已配置资源目录,若项目有自定义配置,确保存在这段代码:
sourceSets.main { resources.srcDirs("src/main/resources") }
Groovy版build.gradle对应配置:
sourceSets { main { resources { srcDirs 'src/main/resources' } } }
这一步是为了让打包后的程序能正常访问到字体文件。
步骤3:在代码中加载并使用字体
在Compose可组合函数内,先加载字体文件并创建字体族,再应用到文本组件:
// 加载字体,路径对应resources下的相对路径 val customFont = Font(resource = "fonts/YourCustomFont.ttf") val customFontFamily = FontFamily(customFont) // 在Text组件中使用自定义字体 Text( text = "这是自定义字体的展示效果", fontFamily = customFontFamily, fontSize = 28.sp )
如果字体包含不同字重(如常规、粗体),可以加载多个文件组合成完整字体族:
val regularFont = Font("fonts/Font-Regular.ttf") val boldFont = Font("fonts/Font-Bold.ttf", weight = FontWeight.Bold) val customFontFamily = FontFamily(regularFont, boldFont)
注意事项
- 字体文件名尽量用英文、无空格,避免路径解析出错
- 若字体加载失败,检查路径是否正确,确认字体文件已放入
resources目录 - 打包成桌面应用后,字体资源会嵌入到jar包中,无需额外携带独立字体文件
内容的提问来源于stack exchange,提问作者Hadj Said Aoumer
相关产品推荐
相关产品推荐

