gpt4 book ai didi

android - Jetpack compose 从资源中获取 FontFamily

转载 作者:行者123 更新时间:2023-12-05 00:13:04 25 4
gpt4 key购买 nike

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。
我会考虑以下选项:

  • 在 xml 中为主题定义 Material 设计文本样式(body1、body2 等)并使用 MDC-theme adapter将它们迁移到 MaterialTheme.typography
  • 以上可能不适用于特殊字体系列,例如 Logo 或其他用例。在这种情况下,我会为撰写重新创建 FontFamily:
  • 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/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com