如何为表情符号制作有效的弹出视图?

Posted

技术标签:

【中文标题】如何为表情符号制作有效的弹出视图?【英文标题】:How to make effective popup view for emojicon? 【发布时间】:2015-09-17 10:32:20 【问题描述】:

我有一些例子Emoji Keyboard。如何在软键盘中创建类似于 emojiconView 的弹出视图

我还有另一个项目。我创建了一个类似于Dot dash Keyboard 的弹出窗口 如何在软键盘中实现表情符号正确视图。

参见:

但我的看法是:

如何在软键盘中管理此视图。

编辑 1: 代码

public void createCheatSheet() 
        LayoutInflater inflater = (LayoutInflater) service.getSystemService(Service.LAYOUT_INFLATER_SERVICE);
        ViewGroup viewGrop = null;
        if (this.gridView == null) 
            emojiTextView = new EmojiconTextView(getContext());
            // this.gridView =
            // this.service.getLayoutInflater().inflate(R.layout.cheatsheet2,
            // null);
            LinearLayout l = (LinearLayout) this.service.getLayoutInflater().inflate(R.layout.cheatsheet2, null);
            l.addView(emojiTextView);
            viewGrop = (ViewGroup) inflater.inflate(R.layout.linearlayout, l, true);

        
        if (emojiTextView == null) 
            // this.gridView =
            // this.service.getLayoutInflater().inflate(R.layout.cheatsheet1,
            // null);
            // emojiTextView = (EmojiconTextView)
            // gridView.findViewById(R.id.Emoji_GridView);

        

        if (this.popupDialog == null) 
            this.popupDialog = new Dialog(this.service);

            popupDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

            popupDialog.setCancelable(true);
            // FrameLayout boatlayout = new FrameLayout(this.service);
            // emojiTextView = (EmojiconTextView)
            // gridView.findViewById(R.id.Emoji_GridView);
            //
            // FrameLayout.LayoutParams params = new
            // FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT,
            // LayoutParams.MATCH_PARENT);
            // boatlayout.addView(emojiTextView, params);
            // RelativeLayout.LayoutParams parentParams = new
            // RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
            // LayoutParams.WRAP_CONTENT);
            // popupDialog.addContentView(boatlayout, parentParams);
            popupDialog.setCanceledOnTouchOutside(true);
            popupDialog.setContentView(viewGrop);
            // popupDialog.addContentView(emojiTextView, params);

            // emojiTextView.setOnTouchListener(new OnTouchListener() 
            // @Override
            // public boolean onTouch(View v, MotionEvent event) 
            // Toast.makeText(getContext(), "onclick",
            // Toast.LENGTH_LONG).show();
            // return true;
            // 
            // );
            PopupWindow window = new PopupWindow(gridView, 200, 200);
//          Window window = this.popupDialog.getWindow();
            WindowManager.LayoutParams lp = window.getAttributes();
            lp.token = this.getWindowToken();
            lp.type = WindowManager.LayoutParams.TYPE_APPLICATION_ATTACHED_DIALOG;
            window.setAttributes(lp);

            window.addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
        
    

感谢您的提前。请分享您的代码。

【问题讨论】:

【参考方案1】:

你点击这个链接:

How to draw view on top of soft keyboard like WhatsApp?

您是开发人员,但没有功能。您为键盘创建一个自定义视图并关注此项目。

AnySoftKeyboard

https://github.com/AnySoftKeyboard/AnySoftKeyboard

https://github.com/zeuxisoo/android-emoji-keyboard

https://code.google.com/p/indic-keyboards/

【讨论】:

你是一个优秀的开发者。我建议你并关注所有项目,请深入了解所有项目中你学到的好东西。

以上是关于如何为表情符号制作有效的弹出视图?的主要内容,如果未能解决你的问题,请参考以下文章

将自定义表情符号复制到剪贴板

匹配和替换字符串中的表情符号 - 最有效的方法是啥?

我无法制作类似于 Pinterest 反应的 css svg 动画表情符号

UITextField - 防止用户输入非标准字符(如表情符号)

安卓qq上怎么发iphone表情符号

用表情符号替换字符串的最有效方法[关闭]