无法在带有大文本的 Android TextView 中显示 Unicode 字符(表情符号):"Font size too large to fit in cache"

Cannot display a Unicode character (Emoji) in an Android TextView with large text: "Font size too large to fit in cache"

我正在尝试在 TextView 中显示单个 Unicode 字符(表情符号),文本大小较大(r):

mEmojiTextView = (TextView) findViewById(R.id.emoji_text_view);
mEmojiTextView.setTextSize(200);
mEmojiTextView.setText("\uD83D\uDE01");

字符没有出现在屏幕上,我在logcat中得到这个错误:

E/OpenGLRenderer﹕ Font size too large to fit in cache. width, height = 545, 513

有效的最大尺寸是

mEmojiTextView.setTextSize(150);

表情符号字符出现。它不像全屏或其他任何东西,在这个文本大小下,屏幕上有足够的 space 大约 6 个表情符号字符。

我 运行 在 LG Nexus 5 phone 上进行测试,分辨率为 1080 x 1920,运行 Android 5.1.1。我正在使用 minSdkVersion 11targetSdkVersion 23

我尝试了在 Whosebug 和其他地方找到的许多解决方法:

mEmojiTextView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

<TextView android:layerType="software" ... />

<activity android:hardwareAccelerated="false" ... />

没有任何效果。

有什么方法可以让它工作吗?

这是一个 android 问题 Issue with emoji with 200sp size 目前没有办法修复它,如果你在 TextView

中有表情符号,请不要将大小设置超过 199