我正在为安卓构建自定义软键盘,并想添加一个布局来包含表情符号键,类似于默认的安卓键盘(AOSP)所做的。我搜索了一下,看起来大多数人都试图显示来自图像的自定义表情符号。我想显示 Android 内置的图标(如下所示):
1) 我正在将包含资产的ImageView替换为包含Unicode序列的TextView,而不是使用emitos。
在交叉引用支持的Unicode序列以及Visual Unicode数据库之后,我意识到**u1F601**是一个32位的Unicode表示,而16位的表示可以设置为:
EditText messageInput = (EditText) findViewById(R.id.message_input);
messageInput.getText().append("\ud83d\ude01");
前往https://en.m.wikipedia.org/wiki/Emoji查看你的设备使用的unicode支持哪些表情符号。
如你所知,显示哪个表情符号取决于你使用的字体,因此为了获取最新的表情符号,请将NotoColorEmoji.ttf
作为你应用的字体。
感谢所有的建议。我成功展示了自定义键盘中的表情符号布局,具体步骤如下:
在.xml布局文件中,为每个要添加的表情符号创建一行代码,例如:<Key android:codes="0x1F602" android:keyLabel="\ud83d\ude02"/>
提交按键时,请使用以下代码:getCurrentInputConnection().commitText(String.valueOf(Character.toChars(primaryCode)), 1);