android - EmojiCompat 的自定义字体

标签 android fonts android-support-library emoji

我有一个关于 EmojiCompat 的小问题几周前引入的库。
有一群人(包括我)不太喜欢 Google 与 Oreo 一起推出的新 Emoji 风格。
由于我喜欢旧的 blob 表情符号,因此我最近开始更新此表情符号字体。

现在我的问题:
Android 开发者页面显示有两种使用 EmojiCompat 的方式。
第一个是使用可下载字体,第二个是使用基于加载字体资源的 bundle 表情符号字体。
我已经有了 EmojiCompatConfig 的有效实现,它允许我加载 assets 文件夹中的任何字体,并且它可以与 bundle 配置中提供的字体一起使用,但不能与我自己的字体。
“Library-Components”部分 [我没有足够/任何声誉,所以我无法提供此部分的链接...] 说原始的 Noto-Emoji 字体(我的字体实际上是基于它的)是以某种方式进行修改(即将表情符号移动到另一个区域并添加一些“额外的表情符号元数据”,这些元数据在文档中的任何地方都没有真正指定)。
我已经尝试使用 fonttools 提供的 ttx 工具来查找一些差异。
看起来只有这些修改。
修改后的版本在默认 noto 字体中不存在的元表和表情符号字形的实际位置上都有所不同 - 可能是因为它们将表情符号移动到了私有(private)区域。
有谁知道如何重新创建这些修改,以便我能够使用自己的表情符号字体而不是新的表情符号字体?
我已经尝试搜索这个问题,但没有找到任何可以帮助我的内容。

已经有another post关于是否可以使用可下载字体方法来使用 iOS 表情符号,但我认为这些问题相同...

最佳答案

修改现有 CBDT/CBLC 表情符号字体的脚本可以在这里找到:https://android.googlesource.com/platform/external/noto-fonts/+/android-8.0.0_r17/emoji-compat/createfont.py

需要传递给脚本的“unicode 路径”应指向以下数据:https://android.googlesource.com/platform/external/unicode/+/android-8.0.0_r17

关于android - EmojiCompat 的自定义字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46493174/

相关文章:

android.app.Fragment$InstantiationException : Trying to instantiate a class ScannerFragment that is not a Fragment

java - 从 WebView 中获取 Fragment 的实例

java - ViewGroup 动画不工作

flash - 嵌入字体并在 Flash 中正确显示的问题

CSS 字体松鼠应用不正确

html - Webkit(钛桌面内)缩小字体

java - 使用 Proguard 的 java 核心类的 NoClassDefFoundError

android - 双击到顶部

安卓条件权限

android - Android Studio中的错误