安卓。如何显示大表情符号? (字体太大,无法放入缓存)

标签 android textview emoji

对于版主:我已经找到了类似的问题( 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。

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

最佳答案

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

关于安卓。如何显示大表情符号? (字体太大,无法放入缓存),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57414793/

相关文章:

android - 等待选择器时显示进度条

android - 有没有办法在 Android 上向 TextView 添加内部阴影?

Android - 在 onMeasure 中更改布局子项

mysql - PHP中如何删除表情符号代码?

ruby - 将utf8mb4字符串保存到mysql

android - 如何打印由android的query()方法执行的查询

java - Android : sending data to a WebView with loadUrl or retrieving it from the WebView with a JavascriptInterface? 中什么更快

java - BitmapFactory 无法解码流

android - 如何创建将充当链接的 TextView

ios - 在网络上显示 iOS 表情符号 unicode 字符