您好我想做以下事情:
??? unicode = U+1F60A
String emoji = getEmojiByUnicode(unicode)
String text = "So happy "
textview.setText(text + emoji);
在我的textview中得到这个:
太开心了
如何实施getEmojiByUnicode(unicode)
?
unicode
变量应该是什么类型的? (String,char,int?)
请注意,我不想使用Drawables!
答案 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
尝试答案 1 :(得分:13)
您可以使用十进制代码直接在字符串资源中使用Emojis,如下所示:
😊
例如:
<string name="emoji">I am happy 😊</>
答案 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"
这是在我的设备上运行代码后的样子。我也包括了其他筹码?;
PS:我在最新版本的 Android Studio (Arctic Fox v. 2020.3.1) 上运行了这个。旧版本的结果可能会有所不同。
脚注