如何在TextView中通过Unicode设置表情符号?


93

嗨,我想做以下事情:

??? unicode = U+1F60A
String emoji = getEmojiByUnicode(unicode)
String text = "So happy "
textview.setText(text + emoji);

在我的textview中得到这个:

很高兴happy

我该如何实施getEmojiByUnicode(unicode)

unicode变量应为哪种类型?(字符串,字符,整数?)

请注意,我不想使用Drawables!

Answers:


184

找到了解决方案:

在我的unicode中,我用' 0x ' 替换了' U + '

示例:将' U + 1F60A ' 替换为' 0x1F60A

这样我就得到了一个“ int”

int unicode = 0x1F60A;

可以搭配使用

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

所以Textview显示😊没有Drawable

通过http://apps.timwhitlock.info/emoji/tables/unicode进行尝试


3
在5.1上工作,但在4.4.4上我得到了?我的表情符号字符串
filthy_wizard '16

21
是否可以在strings.xml文件中执行此操作?
Spektakulatius

@ user1232726,这将取决于用户的电话,包括正在使用的表情符号。
Suragch '17

你能帮忙把这个“ 5794d5f7895fa10a8f8e1357”转换成EMOJI吗?@GilbertGiesbert ..谢谢...
Ravindra Kushwaha

2
不幸的是,它不能与32位Unicode一起使用,例如U + 1F1EF U + 1F1F2。该值超出整数边界。
克里斯


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.