Gil*_*ert 79 unicode android encode textview emoji
嗨,我想做以下事情:
??? unicode = U+1F60A
String emoji = getEmojiByUnicode(unicode)
String text = "So happy "
textview.setText(text + emoji);
Run Code Online (Sandbox Code Playgroud)
在我的textview中得到这个:
很高兴
如何实现'getEmijoByUnicode(unicode)'?
应该是什么类型的'unicode'?(String/char/int ??!)
请注意,我不想使用Drawables!
Gil*_*ert 159
找到了解决方案:
在我的unicode中,我将' U + ' 替换为' 0x '
示例:将' U + 1F60A ' 替换为' 0x1F60A '
这样我得到了一个'int'
int unicode = 0x1F60A;
Run Code Online (Sandbox Code Playgroud)
哪个可以用
public String getEmojiByUnicode(int unicode){
return new String(Character.toChars(unicode));
}
Run Code Online (Sandbox Code Playgroud)
所以Textview显示没有Drawable
尝试使用http://apps.timwhitlock.info/emoji/tables/unicode
P1x*_*ler 28
您可以使用十进制代码直接在字符串资源中使用Emojis,如下所示:
😊
Run Code Online (Sandbox Code Playgroud)
例如:
<string name="emoji">I am happy 😊</>
Run Code Online (Sandbox Code Playgroud)
注意:android是标准XML转义序列中的x.
注意:对于 Kotlin
fun getEmoji(unicode: Int): String {
return String(Character.toChars(unicode))
}
Run Code Online (Sandbox Code Playgroud)
我想我找到了最直接的解决方案。就我而言,我想向芯片组中的其中一个芯片添加火 () 表情符号。我只是转到Emojipedia Fire Entry 1,单击copy表情符号含义正下方的按钮,然后将其粘贴到我的 Kotlin 代码中。这是粘贴后的代码片段。
val chip = Chip(context)
chip.text = "\uD83D\uDD25 New"
Run Code Online (Sandbox Code Playgroud)
这是在我的设备上运行代码后的样子。我还包括了其他芯片;
PS:我在最新版本的Android Studio(Arctic Fox v.2020.3.1)上运行了这个。结果可能与旧版本不同。
脚注
小智 5
所有的功劳都归功于肯尼斯·穆勒瓦(Kenneth Murerwa),他的回答解决了我的问题。只是附和一下,只需复制并粘贴从https://emojipedia.org上的“复制”按钮获得的内容,并将其粘贴到旧引号之间即可。是的,这是一个菜鸟点,但是嘿,我们一开始都是菜鸟
val emoji = "\uD83D\uDE00 \uD83D\uDC4C"
Run Code Online (Sandbox Code Playgroud)
然后你可以将它添加到你需要的任何字符串中。它在手机屏幕上渲染得很好,尽管它不会显示在 println 中
println("")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
58515 次 |
| 最近记录: |