表情符号在键盘键标签和textView上看起来不同

时间:2014-02-13 12:03:02

标签: android keyboard emoji

我尝试创建表情符号键盘。我在其中一个测试设备上遇到问题: 键盘键标签和textView上的表情符号看起来不同。

标签文字:

int code = key.codes[0];
key.label = String.valueOf(Character.toChars(code));

文字提交:

String text = String.valueOf( Character.toChars(code) );
InputConnection ic = getCurrentInputConnection();
ic.beginBatchEdit();
ic.commitText(text, 1);
ic.endBatchEdit();

一切正常,但在三星设备上我遇到了问题。例如:

我使用代码0x1F601表情符号“笑脸咧嘴笑脸”。

Key.label看起来像这样:

http://i.stack.imgur.com/f52db.png

然后我点击,在textView中我看到symblo看起来像这样:

http://i.imgur.com/SLaNOpt.png

任何解决方案?

(对不起链接,但我没有10张帖子图片的声誉,哈哈)

1 个答案:

答案 0 :(得分:3)

Unicode标准定义了722表情符号的代码点,但没有规定任何样式或外观。它包括每个表情符号的简短描述。根据此描述,人们可以创建自己的图像或字体来显示表情符号。

Android的默认字体(Roboto,如4.0+)包括单色表情符号,Apple有一个带彩色表情符号的字体(您的第二张图片),依此类推。外观仅取决于用于显示它们的字体。

WhatsApp for Android使用与Apple相同的彩色表情符号。

您的第一张照片可能是另一种字体或用于替换该应用程序中表情符号的位图图像的结果。

如果你想改变表情符号的外观,你至少有两种方法可以做到这一点:

  • 使用其他字体,例如您在应用程序中嵌入的自定义字体。
  • 使用Spannable s用微小的位图图像替换表情符号。

更多信息:https://github.com/delight-im/Emoji