如何在软键盘中添加自己的表情符号

时间:2014-11-27 14:10:40

标签: android-softkeyboard emoji android-input-method

我想弄清楚如何在Facebook应用和Google Hangouts应用上实现表情符号(表情符号)选择。

我创建了一个像表情符号一样的软键盘。但后来我认为像facebook,skype等应用程序会对它做出反应。许多表情符号键盘应用程序正在使用unicode发送他们的图像,这些代码是通用的。

我认为此类型的键盘只能在此应用中使用,而不适用于其他应用或操作系统。

此键盘不使用Unicode序列,而只使用本地图像资源。

我的问题是

如果我从本地数据库添加我自己的表情符号,如果我不使用UniCode并通过创建一个可跨越的ImageSpan发送它。这些图像可以发送到应用程序,Facebook和Skype上。

因为我正在创建新的表情符号图像。这是工作吗?

Just need suggestion or

Does anyone have an idea of how this can be implemented. 

或者可以将我的表情符号图标转换为UNi代码

1 个答案:

答案 0 :(得分:2)

请参阅此link

<强> Softkeyboard.java

    if (primaryCode == 32) {
        LayoutInflater layoutInflater = (LayoutInflater) getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);
        View popupView = layoutInflater.inflate(R.layout.popup, null);
        popupWindow = new EmojiconsPopup(popupView, this);
        // final PopupWindow popupWindow = new PopupWindow();
        popupWindow.setSizeForSoftKeyboard();
        popupWindow.setSize(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
        popupWindow.showAtLocation(mInputView.getRootView(), Gravity.BOTTOM, 0, 0);

        // Bring soft keyboard up : NOT WORKING
        final InputMethodManager mInputMethodManager = (InputMethodManager) getBaseContext()
                .getSystemService(Context.INPUT_METHOD_SERVICE);

        mInputMethodManager.showSoftInput(popupView, 0);


        // If the text keyboard closes, also dismiss the emoji popup
        popupWindow.setOnSoftKeyboardOpenCloseListener(new OnSoftKeyboardOpenCloseListener() {

            @Override
            public void onKeyboardOpen(int keyBoardHeight) {

            }

            @Override
            public void onKeyboardClose() {
                if (popupWindow.isShowing())
                    popupWindow.dismiss();
            }
        });

        popupWindow.setOnEmojiconClickedListener(new OnEmojiconClickedListener() {

            @Override
            public void onEmojiconClicked(Emojicon emojicon) {
                mComposing.append(emojicon.getEmoji());
                commitTyped(getCurrentInputConnection());

                customToast("" + emojicon.getEmoji());
            }
        });

        popupWindow.setOnEmojiconBackspaceClickedListener(new OnEmojiconBackspaceClickedListener() {

            @Override
            public void onEmojiconBackspaceClicked(View v) {
                KeyEvent event = new KeyEvent(0, 0, 0, KeyEvent.KEYCODE_DEL, 0, 0, 0, 0, KeyEvent.KEYCODE_ENDCALL);
                customToast(" " + event);
                handleBackspace();
            }
        });

给你一些帮助..