我的应用程序在三星Galaxy S3上使用Android 4.0。
我想在Android应用程序的EditText字段中集成表情符号字符支持。 任何人都可以建议我,我怎样才能实现它?
例如,在whatsapp和微信应用程序中,TextField支持表情符号键盘字符,但在我的应用程序中,它为我使用表情符号键盘输入的每个字符显示?
。
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/
的表情符号字体但没有工作
答案 0 :(得分:3)
这取决于用于TextView
或其子类的字体,如EditText
。
每个 View
都可以显示表情符号,因为Unicode中包含数百个表情符号,而且这些表情符号也成为WhatsApp使用的大多数表情符号键盘和应用程序的默认设置。
但是,例如,您在WhatsApp中看到的那些彩色图像不会被看到。这是因为WhatsApp使用自定义字体/图像来替换默认外观的这些表情符号。
但是如果你将表情符号添加到正常的文本字段中,那么#34;消息"应用程序或其他地方,你应该看到普通的Android风格,它是显示Android机器人的单色表情符号。
这是一个常用表情符号列表及其Unicode代码点:
https://github.com/delight-im/Emoji
他们都支持Android的普通字体。我猜您可能更改了布局中EditText
的字体。
答案 1 :(得分:2)
您可以使用此库中的EmojiconTextView
或EmojiconEditText
:https://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())