如何从android中的字符串中提取文本表情符号

时间:2016-03-28 11:57:38

标签: android emoticons

我正在开发一个Android应用程序,我想在其中将所有键盘类型的表情符号转换为表情符号图标。

我已经在使用此库https://github.com/ankushsachdeva/emojicon在我的应用中显示表情符号。

现在,我想将用户使用键盘键入的表情符号转换为表情符号。

Ex:如果用户输入字符串Hello World :):P:  1.然后我需要首先提取这些笑脸符号,为此我需要一个正则表达式模式,它将从字符串中提取所有这些类型的符号。  2.我需要找到这些符号的Unicode,然后使用上面的库在表情符号中转换这些符号。

请帮助我,以便我可以在这里继续。

1 个答案:

答案 0 :(得分:1)

此lib正在使用ImageSpanSpannableStringBuilder,如下所示: EmojiconTextView

public void setText(CharSequence text, BufferType type) {
    SpannableStringBuilder builder = new SpannableStringBuilder(text);
    EmojiconHandler.addEmojis(getContext(), builder, mEmojiconSize, mTextStart, mTextLength);
    super.setText(builder, type);
}

您始终可以从当前SpannableStringBuilder移除范围并获取纯文本

如果你想在飞行中设置跨度""只需对TextWatcher使用EditText,就像这里一样:EmojiconEditText

protected void onTextChanged(CharSequence text, int start, int lengthBefore, int lengthAfter) {
    EmojiconHandler.addEmojis(getContext(), getText(), mEmojiconSize);
}

这个lib似乎对你有用,只需使用lib(View前缀)中的Emojicon代替常用的,例如

<ankushsachdeva.emojicon.EmojiconTextView
        android:id="@+id/emojicon"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        emojicon:emojiconSize="24dip"
        android:gravity="center"/>
在XML布局文件中

而不是EditText