在 res/font
我已经定义了font-family
像这样:
<font-family xmlns:app="http://schemas.android.com/apk/res-auto">
<font app:fontStyle="normal" app:fontWeight="400" app:font="xyz_1"/>
<font app:fontStyle="normal" app:fontWeight="500" app:font="xyz_2"/>
</font-family>
如何在 Jetpack Compose 中加载它并将其用作 FontFamily
目的?
最佳答案
不幸的是,目前还没有一个直接的解决方案可以直接从 xml 中加载 Font-Familys。
我会考虑以下选项:
MaterialTheme.typography
private val appFontFamily = FontFamily(
fonts = listOf(
Font(
resId = R.font.roboto_black,
weight = FontWeight.W900,
style = FontStyle.Normal
),
Font(
resId = R.font.roboto_black_italic,
weight = FontWeight.W900,
style = FontStyle.Italic
),
Font(
resId = R.font.roboto_bold,
weight = FontWeight.W700,
style = FontStyle.Normal
),
...
)
)
这是一个很好的阅读:https://alexzh.com/jetpack-compose-theme-and-typography/ .也可以得到启发并为 Mdc 主题适配器做出贡献,以涵盖主题之外的这些特殊用例。我想阅读文本样式以进行撰写的逻辑已经存在,只需要提供一个 API 来读取自定义样式,而不是 Material Theme 中指定的那些。
关于android - Jetpack compose 从资源中获取 FontFamily,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69673029/