在Android中存储和呈现Unicode Emojis的最佳方式

时间:2018-01-26 01:15:24

标签: android unicode emoji

我有一个简单的记忆游戏作为项目。对于Memory Tiles,我想使用Emojis。我试着这样用:

emojiCard.setText(new String(Character.toChars(Integer.parseInt(1F60D, 16))));

现在我只需将 1F60D 保存到变量中即可显示表情符号。

适用于简单的表情符号,但我不能使用“新”,因为那时我必须使用代理对,我不知道如何做到这一点。

有更好的方法吗?比如保存unicode? 抱歉,我对Android开发真的很新,并尝试过很多东西。 感谢。

1 个答案:

答案 0 :(得分:1)

Integer.parseInt()需要String作为输入,因此您可能想要说Integer.parseInt("1F60D", 16)。如果只是简单地将数字0x1F60D字面传递给Character.toChars(),那么会浪费很多。

Java字符串使用UTF-16编码。当编码为UTF-16时,代码点U + 1F60D使用代理对,因此代理不是您的问题。

假设你指的是更新的表情符号支持修饰符(改变他们的性别,颜色等),那么这与代理人无关。您只需在基本表情符号代码点之后附加所需的修饰符代码点。例如:

emojiCard.setText(new String(Character.toChars(0x1F466)) + new String(Character.toChars(0x1F3FE)));

(+ =)