显示Android中Unicode的表情符号



我有一个简单的代码,可以在按钮的文本中显示hearts卡套装:

int intHearts= 0x2665;
String stringHearts= new String(Character.toChars(intHearts));
btnHearts.setText(stringHearts);

在模拟器(Android 7)中效果很好,显示了红色表情符号。相反,当我从华硕Zenfone 2(Android 5)运行应用程序时,我只能看到心脏的黑色角色♥。那么我如何获得手机显示红色表情符号?

u 2665在引入表情符号之前就添加到Unicode中。这就是为什么此字符有两种演示模式(文本和表情符号)。默认情况下,使用哪个字符表示特定于应用程序。出于遗产原因,经常使用文本演示文稿(黑心)。

您可以通过附加变体选择器字符手动指定字符表示。u fe0e用于文本演示。u fe0f表示表情符号。

不幸的是,Android似乎仅支持Android 6.0之前的文本演示(忽略变异选择器)。从那时起,仅在表情符号演示中(再次忽略变异选择器)。

要解决此问题,您可以使用表情符号支持库。

设置一个Unicode。

int smileEmoji = 0x1F60A;

您希望它显示的位置。

getEmojiByUnicode(smileEmoji)

方法。

public String getEmojiByUnicode(int unicode){
    return new String(Character.toChars(unicode));
}

相关内容

  • 没有找到相关文章

最新更新