android - Android 键盘中的表情符号

标签 android keyboard

我开发了 Android 键盘,我想向其中添加表情符号,例如查看“k”的代码是

<Key android:codes="107" android:keyLabel="k"/>

107是'k'字母的ascii代码,您可以从这个网站找到所有ascii代码 http://www.addressmunger.com/special_ascii_characters/

如果您搜索“k”,您将得到k我的问题是,如果我想放这个表情符号,例如 😒 我得到的 ascii 是 �� 我不知道如何将此 ascii 放入 xml 中..有帮助吗?

最佳答案

你应该会发现这个不会工作:

<Key android:codes="0x1F602" android:keyLabel="0x1F602"/>

而是在 .xml 布局文件中,为要添加的每个表情符号创建如下行:

    <!--'Face with tears of joy' -->
<Key android:codes="0x1F602" android:keyLabel="\ud83d\ude02"/>

😂 “\ud83d\ude02”称为 Java 转义序列(16 位)。

如果您使用 the standard SoftKeyboard (或某些衍生品),您将不得不更改它以处理转义字符。您应该有一个名为 SoftKeyboard 的类,它扩展了 InputMethodService。里面应该有一个名为handleCharacter的方法。更改此行:

getCurrentInputConnection().commitText(String.valueOf((char) primaryCode), 0);

到这一行:

getCurrentInputConnection().commitText(String.valueOf(Character.toChars(primaryCode)), 1);

代码引用自:display built-in emoji keys for inputmethod

其他引用:
http://android.appstorm.net/how-to/customization/how-to-use-emojis-on-your-android-device/

Emoji Keyboard support for EditField in android

set font at runtime, Textview

关于android - Android 键盘中的表情符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45589522/

相关文章:

javascript - 仅对真实角色按下按键?

android - 如何检测已发现并配对的设备是否可用?

java - 让 Android 应用监听共享链接

android - Tabwidget 与我的 Activity 内容重叠

javascript - jQuery .keypress 和 .keydown .which

ios - 不使用表情符号键盘调用 UIKeyboardWillChangeFrame 通知

java - 无法正确使用BufferedReader类

javascript - 检测键盘上 "next track"按钮的按下?

android - 在进度条上显示导入的数据

安卓报警管理器 : how to avoid to going off of past alarms