【问题标题】:Android. How to display large emoji? (Font size too large to fit in cache)安卓。如何显示大表情符号? (字体太大,无法放入缓存)
【发布时间】:2019-12-16 07:04:12
【问题描述】:

版主:我已经找到了类似的问题(onetwo),但没有一个能解决我的问题。请不要标记为重复。

问题:我有一台运行 Android 7 (API 25) 的设备,我需要在 TextView 中显示一个大表情符号。如果字体大小低于 256 的表情符号显示没有问题,但大小超过 256 的表情符号不显示:

ERROR/OpenGLRenderer: Font size to large to fit in cache.

我尝试了什么:

  • 为特定 Activity 禁用硬件加速
  • 禁用特定 TextView 的硬件加速
  • 使用 Paint.getTextPath(...) 将表情符号转换为轮廓

但是没有任何效果。甚至 Paint.getTextPath 也不返回表情符号轮廓(对于纯文本,一切正常)。

在模拟器(Android 9,API 28)中显示所有表情符号,但在真实设备(Android 7,API 25)上 - 不是。这可能是android本身的一个bug。

还有其他显示大表情符号的方法吗?

【问题讨论】:

  • 也许这个表情符号不在 Android 7.0 中
  • @Johann67 如果表情符号大小低于 256 则会显示,所以这不是问题

标签: android textview emoji


【解决方案1】:

昨天我自己已经为此苦苦挣扎了很长时间,我会说,如果你感到绝望,你可以去谷歌的 Noto Emoji 字体库的 SVG 部分 -- https://github.com/googlefonts/noto-emoji/tree/master/svg -- 并下载 SVG 文件以获取你想要的表情符号。然后在 Android Studio 中执行 New/Vector Asset 将 SVG 文件转换为 XML 文件,并以您喜欢的任何大小使用它。它甚至比走 text-emoji-at-a-very-large-font-size 路线看起来更清晰。

【讨论】:

    猜你喜欢
    • 2014-10-11
    • 1970-01-01
    • 2011-09-09
    • 2014-06-26
    • 2016-02-08
    • 1970-01-01
    • 2021-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多