android - 如何为 react-native android 项目添加不同字体粗细的字体?

标签 android fonts react-native

我通过以下方式成功添加了自定义字体:

  • 像这样将 *.ttf 文件放在 ProjectName/android/app/src/main/assets/fonts/ 中:

    • 打开 Sans.ttf
    • 打开 Sans_italic.ttf
    • 打开 Sans_bold.ttf
    • 打开 Sans_bold_italic.ttf
  • 并通过fontFamily设置字体系列:“Open Sans”

但是还有一些额外的字体粗细我想使用,比如“Semi Bold”、“Extra Bold”。我尝试将它们添加为“Open Sans_900.ttf”并设置 fontWeight: 900 但这没有用,它显示了字体的粗体版本。

有没有办法添加这些额外的字体粗细?

最佳答案

Android 上对自定义字体的开箱即用支持在 React Native 中受到一些限制。它不支持除normalbold 之外的字体粗细(它还支持italic fontStyle)。如果您想要其他自定义权重,则必须将它们添加为具有不同名称的单独字体(正如大卫在他的回答中提到的那样)。

RN 将找到的唯一字体文件具有以下格式:

  • {fontFamilyName}
  • {fontFamilyName}_bold
  • {fontFamilyName}_italic
  • {fontFamilyName}_bold_italic

支持的扩展名:.ttf.otf

这确实没有在任何地方记录(据我所知),但您可以在此处阅读字体管理器代码:https://github.com/facebook/react-native/blob/master/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactFontManager.java

关于android - 如何为 react-native android 项目添加不同字体粗细的字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38815234/

相关文章:

Android:向系统添加自定义字体

css - fontawesome 5 与 sass

ios - 在 native 应用程序中访问 package.json 版本和构建变量的最佳方法?

android - gradle构建后运行应用程序时出错

android - 以编程方式禁用 Android 操作系统升级?

android - 基于播放服务测量的多个版本请求

android - SecurityException: 未能找到用户 0 的提供程序 null;在 ActiveAndroid 上 Android 8.0

emacs - emacs中如何设置ttf字体

React-Native 链接 AddEventListener 不起作用

reactjs - 错误: Cannot read property 'UIAppFonts' of null