在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
对象?
发布于 2021-10-22 08:00:47
不幸的是,在compose from 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主题中指定的样式。
https://stackoverflow.com/questions/69673029
复制相似问题