w446108264 / XhsEmoticonsKeyboard

android emoticonsKeyboard support emoji and user-defined emoticon. easy to integrated into your project
2.85k stars 597 forks source link

要不要这么叼~ #7

Closed sangmingming closed 8 years ago

sangmingming commented 8 years ago

如上

sangmingming commented 8 years ago

需要加入权限控制,有相应权限的人才可以使用相应的表情。

w446108264 commented 8 years ago

什么意思呢

sangmingming commented 8 years ago

就是类似小红书里面那样,redclub用户才能使用一部分表情。

w446108264 commented 8 years ago

重点参考SimpleCommonUtils

redclub用户才能使用一部分表情可以理解为具有某些标志的特殊表情集

那么只需要在构造键盘表情的时候做判断

if(redclub) {
// 有权限用户,直接添加小红书这部分的redclub表情集,参考SimpleCommonUtils/addXhsPageSetEntity()
EmoticonPageSetEntity xhsPageSetEntity
                = new EmoticonPageSetEntity.Builder()
                .setLine(3)
                .setRow(7)
                .setEmoticonList(ParseDataUtils.ParseXhsData(DefXhsEmoticons.xhsEmoticonArray, ImageBase.Scheme.ASSETS))
                .setIPageViewInstantiateItem(getDefaultEmoticonPageViewInstantiateItem(getCommonEmoticonDisplayListener(emoticonClickListener, Constants.EMOTICON_CLICK_TEXT)))
                .setShowDelBtn(EmoticonPageEntity.DelBtnStatus.LAST)
                .setIconUri(ImageBase.Scheme.ASSETS.toUri("xhsemoji_19.png"))
                .build();
        pageSetAdapter.add(xhsPageSetEntity);
} else  {

// 如果只是想在底部表情集合栏添加一个按钮,点击的时候弹出提示,参考SimpleChatActivity/initEmoticonsKeyBoardBar()
 ekBar.getEmoticonsToolBarView().addToolItemView(R.mipmap.icon_setting, new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(SimpleChatActivity.this, "SETTING", Toast.LENGTH_SHORT).show();
            }
        });

// 如果只是想在底部表情集合栏添加一个按钮,同时还可以通过滑动的方式滑动到该页面,页面上提示解锁,那么可以插入一个自定义的view代替表情默认view,参考SimpleChatActivity/addTestPageSetEntity()
 PageSetEntity pageSetEntity = new PageSetEntity.Builder()
                .addPageEntity(new PageEntity(new SimpleAppsGridView(context)))
                .setIconUri(ImageBase.Scheme.DRAWABLE.toUri("icon_kaomoji"))
                .setShowIndicator(false)
                .build();
        pageSetAdapter.add(pageSetEntity);
}

// 如果想保持和其他正常的表情集一样的正常显示滑动,但是在表情页上有遮罩式的提示,那么就需要自定义EmoticonsAdapter,参考SimpleCommonUtils/addGoodGoodStudyPageSetEntity()
EmoticonPageSetEntity pageSetEntity
                = new EmoticonPageSetEntity.Builder()
                .setLine(emoticonPageSetEntity.getLine())
                .setRow(emoticonPageSetEntity.getRow())
                .setEmoticonList(emoticonPageSetEntity.getEmoticonList())
                .setIPageViewInstantiateItem(getEmoticonPageViewInstantiateItem(BigEmoticonsAndTitleAdapter.class, emoticonClickListener))
                .setIconUri(ImageBase.Scheme.FILE.toUri(filePath + "/" + emoticonPageSetEntity.getIconUri()))
                .build();
        pageSetAdapter.add(pageSetEntity);

// 如果想保持和其他正常的表情集其他全部都一样,但是在点击的时候提示权限不足,可以自定义EmoticonsAdapter,或者设置自定义actiontype,参考SimpleCommonUtils/getCommonEmoticonClickListener()
return new EmoticonClickListener() {
            @Override
            public void onEmoticonClick(Object o, int actionType, boolean isDelBtn) {
                if (isDelBtn) {
                    SimpleCommonUtils.delClick(editText);
                } else {
                    if (o == null) {
                        return;
                    }
                    if (actionType == Constants.EMOTICON_CLICK_TEXT) {
                        String content = null;
                        if (o instanceof EmojiBean) {
                            content = ((EmojiBean) o).emoji;
                        } else if (o instanceof EmoticonEntity) {
                            content = ((EmoticonEntity) o).getContent();
                        }

                        if (TextUtils.isEmpty(content)) {
                            return;
                        }
                        int index = editText.getSelectionStart();
                        Editable editable = editText.getText();
                        editable.insert(index, content);
                    }
                }
            }
        };

@sangmingming

ValuesFeng commented 8 years ago

~ ~ ///