表情符号键盘支持Android中的EditField

时间:2014-01-03 08:04:31

标签: android unicode android-softkeyboard emoji

我的应用程序在三星Galaxy S3上使用Android 4.0。

我想在Android应用程序的EditText字段中集成表情符号字符支持。 任何人都可以建议我,我怎样才能实现它?

例如,在whatsapp和微信应用程序中,TextField支持表情符号键盘字符,但在我的应用程序中,它为我使用表情符号键盘输入的每个字符显示?

Screenshot explaining my need

text_message = (EditText) findViewById(R.id.editText1);
    text_view = (textView) findViewById(R.id.textView1);
    btntest = (Button) findViewById(R.id.button1);
    btntest.setOnClickListener(new OnClickListener()
    {
        public void onClick(View v)
        {

            text_swype.setText(text_message.getText().toString());
        }
    });

我也尝试https://github.com/IPL/iOSStyleEditText

来自http://klncity1.wordpress.com/tag/emoji/

的表情符号字体

但没有工作

5 个答案:

答案 0 :(得分:3)

这取决于用于TextView或其子类的字体,如EditText

每个 View都可以显示表情符号,因为Unicode中包含数百个表情符号,而且这些表情符号也成为WhatsApp使用的大多数表情符号键盘和应用程序的默认设置。

但是,例如,您在WhatsApp中看到的那些彩色图像不会被看到。这是因为WhatsApp使用自定义字体/图像来替换默认外观的这些表情符号。

但是如果你将表情符号添加到正常的文本字段中,那么#34;消息"应用程序或其他地方,你应该看到普通的Android风格,它是显示Android机器人的单色表情符号。

这是一个常用表情符号列表及其Unicode代码点:

https://github.com/delight-im/Emoji

他们都支持Android的普通字体。我猜您可能更改了布局中EditText的字体。

答案 1 :(得分:2)

您可以使用此库中的EmojiconTextViewEmojiconEditTexthttps://github.com/rockerhieu/emojicon

答案 2 :(得分:2)

Here is the list of available emoji Unicode

向服务器发送内容需要使用org.apache.commons.lang3.escapeJava(...),从服务器获取数据时需要将Unicode反转为表情符号,因此必须使用org.apache.commons.lang3.unescapeJava(...)

答案 3 :(得分:0)

你必须使用" EmojiconEditText"来自图书馆。 它将显示Eemojies。

使用其中任何一个。

EmojiconTextView: a TextView which can render emojis.
EmojiconEditText: a EditText which can render emojis.
EmojiconGridFragment: a fragment contains emojis in a GridView for the user to choose.
EmojiconsFragment: a fragment contains many set of emojis for the user to choose.

答案 4 :(得分:0)

以下是org.apache.commons.lang3

中的Util

@AZ_发布的答案是正确的,但工具名称已更新如下:

将字符串发送到服务器:

org.apache.commons.lang3.StringEscapeUtils.escapeJava(mEdText1.getText().toString()

从服务器读取字符串:

org.apache.commons.lang3.StringEscapeUtils.unescapeJava(mData.get(position).getText())