首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jetpack compose从资源获取FontFamily

Jetpack compose从资源获取FontFamily
EN

Stack Overflow用户
提问于 2021-10-22 07:37:01
回答 1查看 235关注 0票数 1

res/font中,我这样定义了font-family

代码语言:javascript
运行
复制
<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对象?

EN

Stack Overflow用户

发布于 2021-10-22 08:00:47

不幸的是,在compose from xml中还没有直接加载Font-Familys的简单解决方案。

我会考虑以下几种选择:

  1. 定义材料设计文本样式(body1、body2等)。对于特定的字体系列,例如徽标或其他用例,使用MDC-theme adapter将它们迁移到上面的MaterialTheme.typography
  2. The可能不起作用。在这种情况下,我会选择为compose重新创建FontFamily:

代码语言:javascript
运行
复制
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主题中指定的样式。

票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69673029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档