Closed sangmingming closed 8 years ago
需要加入权限控制,有相应权限的人才可以使用相应的表情。
什么意思呢
就是类似小红书里面那样,redclub用户才能使用一部分表情。
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
~ ~ ///
如上