类和开放接口
优质
小牛编辑
129浏览
2023-12-01
BQMM.java
Android SDK核心文件
- 获得BQMM实例
BQMM.getInstance()
- 注册appId和appSecret,初始化配置。
initConfig(Context mContext, String appId, String appSecret)
- 手动调用SDK初始化方法。
load()
- 获得编辑输入控件,返回一个
Bqmm_Editview
对象。
getEditView()
- 设置编辑输入控件。
setEditView(BQMMEditView editView)
- 获得消息发送按钮控件。
getSendButton()
- 设置消息发送按钮。
setSendButton(Bqmm_SendButton sendButton)
- 设置消息数据解析器,如不设置,默认使用
DefaultMessageParser
。
setMessageParser(IMessageParser messageParser)
- 获取消息数据解析器。
getMessageParser()
- 获取表情键盘,返回
BQMMKeyboard
的一个实例。
getKeyboard()
- 设置表情键盘和点击键盘底部gif按钮回调接口。
setKeyboard(bqmmKeyboard, new IGifButtonClickListener() {
@Override
public void didClickGifTab() {
}
});
- 通过表情code获取表情。callback是查询结果回调监听。
fetchEmojiByCode(Context context,String code ,final IFetchEmojiByCodeCallback callback)
- 通过表情code批量获取表情。callback是查询结果回调监听。
fetchEmojiByCodeList(Context context,List<String> codelist,final IFetchEmojisByCodeListCallback callback)
- 表情键盘是否打开。返回
isKeyboardOpen
。
isKeyboardOpen()
- 设置表情键盘打开关闭状态。注意此方法只修改状态,不会实际打开或关闭键盘。
setKeyboardOpen(boolean isKeyboardOpen)
- 关闭SDK,建议在
Activity.onDestroy
方法中调用
destroy()
- 设置表情发送回调监听。
setBqmmSendMsgListener(IBqmmSendMessageListener onBqmmSendMsgListener)
- 设置当前App用户的userId,以便后端统计特定用户表情使用习惯。(可选)
setAppUserID(String appUserID)
- 设置SDK界面的语言。目前有中文(BQMM.LANGUAGE_CONSTANTS.CH)和英文(BQMM.LANGUAGE_CONSTANTS.CH)两种选择,默认为中文。
setLanguage(String language)
- 自定义Unicode表情在SDK中展示出的图片(可选)。
setUnicodeEmojiProvider(IBQMMUnicodeEmojiProvider provider)
- 自定义键盘中显示的小表情集合(可选)。unicodes 数组中传入的是要显示在键盘中每个表情的Unicode编号。大部分Unicode字符都用一个编号表示,在数组的对应个位置放入int即可,对于极少数用两个编号表示的字符(各国国旗),就需要放入int[]。
setDefaultEmojiSet(Object[] unicodes)
- 自定义Unicode表情tab在键盘底部tab栏展示的缩略图。
setUnicodeEmojiTabIconProvider(IBQMMUnicodeEmojiTabIconProvider provider)
- 流行gif数据接口(sdk2.0.0版本新增接口)
/**
* 异步返回trending结果
* @param page 页码
* @param pageSize 一页的数量
* @param callback
*/
trendingGifsAt(int page, int pageSize, final IBQMMGifCallback<BQMMGif> callback)
- 搜索gif数据接口(sdk2.0.0版本新增接口)
/**
* 异步返回搜索结果
*
* @param text 搜索关键词
* @param page 页码
* @param pageSize 一页的数量
* @param callback
*/
public static void searchGifsWithKey(String text, int page, int pageSize, final IBQMMGifCallback<BQMMGif> callback)
- 清空gif缓存接口(sdk2.0.0版本新增接口)
/**
* @param isClearAll 为true清空全部gif缓存,false清空最近访问的100个gif之外的缓存。
*/
clearBQMMGifCache(final boolean isClearAll)
Emoji.java
说明:表情对象
- 获取/设置表情的唯一识别号的
public int getGuid()
public void setGuid(int id)
- 获取/设置表情内容
public String getEmoText()
public void setEmoText(String emoText)
- 获取/设置表情代码
public String getEmoCode()
public void setEmoCode(String emoCode)
- 获取/设置表情缩略图地址
public String getThumbail()
public void setThumbail(String thumbail)
- 获取/设置表情地址
public String getMainImage()
public void setMainImage(String mainImage)
- 获取所属表情包编号
public String getPackageId()
public void setPackageId(String packageId)
- 获取/设置表情本地缓存地址,未下载时返回为空
public String getPathofImage()
public void setPathofImage(String pathofImage)
- 获取/设置表情缩略图本地缓存地址,表情未下载时返回为空
public String getPathofThumb()
public void setPathofThumb(String pathofThumb)
- 获取Emoji的
serialVersionUID
public static long getSerialVersionUID()
- 是否默认表情
public String getIsDefaultEmoji()
public void setIsDefaultEmoji(String isDefaultEmoji)
- 是否小表情
public boolean getIsEmoji()
public void setIsEmoji(boolean isEmoji)
IFetchEmojiByCodeCallback.java
说明:下载表情完成后的回调
- 下载成功后的回调
onSuccess(Emoji emoji)
- 下载失败后的回调
onError(Throwable t)
IFetchEmojisByCodeListCallback.java
说明:批量下载表情的回调
- 下载成功后的回调
onSuccess(List<Emoji> emojis)
- 下载失败后的回调
onError(Throwable t)
IBQMMUnicodeEmojiProvider.java
说明:实现这个接口的类,可以为SDK提供展示Unicode表情的图片。
- 根据收到的Unicode Code Point,返回对应的Drawable或者null(表示该Code Point没有对应的图片)
Drawable getDrawableFromCodePoint(int codePoint);
IBQMMUnicodeEmojiTabIconProvider
说明:实现这个接口的类,可以为表情键盘的Unicode表情tab提供缩略图,展示在键盘底部的tab列表中。
Drawable getIcon();
BQMMSendButton.java
说明:消息发送按钮,继承自android.widget.Button
。
BQMMEditView.java
说明:消息输入控件,继承android.widget.EditText
。
- 设置Emoji相对于普通字符显示大小的比例(仅对IBQMMUnicodeEmojiProvider提供了图片的Emoji有效)。
setUnicodeEmojiSpanSizeRatio(float ratio)
- 设置与自定义Emoji展示图片相冲突的Span类。为了实现将IBQMMUnicodeEmojiProvider提供的图片显示在文本框里,SDK给文本框中对应的文字设置了Span。当用户想要自己设置一些Span时,可能会和SDK设置的Span形成冲突,这时就可以将准备自行设置到文字中去的Span类型用此方法告诉文本框,SDK会在设置Span时跳过它们。
setConflictSpanClasses(Class[] classes)
BQMMKeyboard.java
说明:表情键盘控件,继承android.widget.RelativeLayout
。
IBqmmSendMessageListener.java
说明:表情消息发送监听接口。
- 发送单个表情
onSendFace(Emoji face)
- 发送图文混排消息
onSendEmoji(List<Object> emojis)
BQMMPopupViewTask.java
说明:在指定View上弹出联想表情View
- 构建方法
BQMMPopupViewTask.create(context)
- 设置
PopWindow
的相对View
public void setPopupView(View parent)
- 设置关联的
EmojiText
public void setEmojiEmoText(String emoText)
BQMMMessageText.java
说明:消息显示视图。可以用于展示文本消息、表情消息和Gif消息。
- 带style的构造函数。用于在代码中实例化时指定文本的样式。
public BQMMMessageText(@NonNull Context context, @StyleRes int textStyle)
- 在实例化之后指定文本样式。
public void setTextTheme(@StyleRes int resId)
- 设置大表情图片显示大小。
public void setStickerSize(int size)
- 设置小表情图片显示大小。
public void setEmojiSize(int size)
- 显示消息。
msgTextString
是该消息的文本表达(当错误发生时,该文本可以作为一个备选方案)。msgType
是BQMMMessageText.FACETYPE
和BQMMMessageText.EMOJITYPE
之一,代表了该消息应该以大表情还是图文混排的方式显示。msgData
是以标准JSON形式表达的消息,含有包括文字和表情的全部信息。
public void showMessage(String msgTextString, String msgType, JSONArray msgData)
- 显示Gif消息。isGif参数只有两种取值,1代表是Gif格式动图,0代表是静态图片。
public void showBQMMGif(String dataId, String stickerUrl, int stickerWidth, int stickerHeight, int isGif)
- 设置Emoji相对于普通字符显示大小的比例(仅对IBQMMUnicodeEmojiProvider提供了图片的Emoji有效)。
public void setUnicodeEmojiSpanSizeRatio(float ratio)
- 设置与自定义Emoji展示图片相冲突的Span类。描述见BQMMEditView中的同名方法。
public void setConflictSpanClasses(Class[] classes)
BQMMMessageHelper.java
说明:默认表情消息格式辅助类。
- 从带有
[emojiCode]
的文本消息中,解析Emoji
和String
列表的方法。参数emojis
/**
*
* @param message
* eg "你好,[smile][lol]你好"
* @return List<Object>
* eg "你好, " Emoji Emoji "你好"
*/
public static List<Object> parseMixedMsg(String message, List<Emoji> emojis)
- 将表情消息转成String
/**
*
* @param List<Object>
* eg "你好, " Emoji Emoji "你好"
* @return String
* eg 你好,[smile][lol]你好
*/
public static String parseMixedMsgToString(List<Object> messageContent)
- 解析富文本Msg
/**
* 解析富文本Msg
* @param msg_data
* eg msg_data=[["你好,","0"],["smile","1"],["lol","1"],["你好","0"]]
* @return eg List<Object>
* eg "你好, ", Emoji, Emoji, "你好"
*/
public static List<Object> parseMixedMsgData(JSONArray msgData)
- 是否是富文本内容
/**
* 是否是富文本内容
* @param messageContent
* @return
*/
public static boolean isMixedMessage(List<Object> messageContent)
- 获得消息中的
emojiCode
列表
/**
*
* @param messageContent
* eg List<Object> "你好, " Emoji Emoji "你好"
* @return List<String>
* eg ["smile","lol"]
*/
public static List<String> findEmojiFormMixedMsg(List<Object> messageContent)
- 解析单个大表情Msg
/**
* 解析单个大表情Msg
*
* @param msgData
* eg msg_data=[["txbypl","1"]]
* @return List<String>
* eg [txbypl]
*/
public static List<String> parseFaceMsgData(JSONArray msgData)
- 获取混排表情的JSONArray消息格式
/**
* 获取混排表情的JSONArray消息格式
* @param List<Object>
* eg "你好, " Emoji Emoji "你好"
* @return JSONArray
* eg [["你好,","0"],["smile","1"],["lol","1"],["你好","0"]]
*/
public static JSONArray getMixedMessageData(List<Object> content)
- 获取大表情的JSONArray消息格式
/**
* 获取大表情的JSONArray消息格式
* @param Emoji
* @return JSONArray [["smile,","1"]]
*/
public static JSONArray getFaceMessageData(Emoji face)