如何在textview中通过unicode设置表情符号?

时间:2014-11-12 18:19:35

标签: android unicode textview encode emoji

您好我想做以下事情:

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

在我的textview中得到这个:

  

太开心了

如何实施getEmojiByUnicode(unicode)

unicode变量应该是什么类型的? (String,char,int?)

请注意,我不想使用Drawables!

4 个答案:

答案 0 :(得分:151)

找到解决方案:

在我的unicode中,我将' U + '替换为' 0x '

示例:将' 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

尝试

答案 1 :(得分:13)

您可以使用十进制代码直接在字符串资源中使用Emojis,如下所示:

😊

例如:

<string name="emoji">I am happy &#128522;</>

答案 2 :(得分:1)

注意:对于Kotlin

fun getEmoji(unicode: Int): String {
    return String(Character.toChars(unicode))
}

答案 3 :(得分:0)

我想我找到了最直接的解决方案。就我而言,我想为芯片组中的一个芯片添加一个火 (?) 表情符号。我只需转到 Emojipedia Fire Entry1,点击表情符号含义正下方的 copy 按钮,然后将其粘贴到我的 Kotlin 代码中。这是粘贴后的代码片段。

val chip = Chip(context)
chip.text = "\uD83D\uDD25 New"

这是在我的设备上运行代码后的样子。我也包括了其他筹码?;

An image sample of how the chip looks like in the device

PS:我在最新版本的 Android Studio (Arctic Fox v. 2020.3.1) 上运行了这个。旧版本的结果可能会有所不同。

脚注

  1. Emojipedia 是一个免费的百科全书,列出并提供了所有在 Unicode 标准下批准的表情符号的含义。您可以随时前往那里寻找富有洞察力的表情符号含义和其他表情符号需求。