本文整理汇总了Java中com.easemob.chat.EMMessage.Type.IMAGE属性的典型用法代码示例。如果您正苦于以下问题:Java Type.IMAGE属性的具体用法?Java Type.IMAGE怎么用?Java Type.IMAGE使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类com.easemob.chat.EMMessage.Type
的用法示例。
在下文中一共展示了Type.IMAGE属性的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getItemViewType
/**
* 获取item类型
*/
public int getItemViewType(int position) {
EMMessage message = getItem(position);
if (message == null) {
return -1;
}
if (message.getType() == Type.TXT) {
if (message.getBooleanAttribute(Constant.MESSAGE_ATTR_IS_VOICE_CALL, false))
return message.direct == Direct.RECEIVE ? MESSAGE_TYPE_RECV_VOICE_CALL : MESSAGE_TYPE_SENT_VOICE_CALL;
else if (message.getBooleanAttribute(Constant.MESSAGE_ATTR_IS_VIDEO_CALL, false))
return message.direct == Direct.RECEIVE ? MESSAGE_TYPE_RECV_VIDEO_CALL : MESSAGE_TYPE_SENT_VIDEO_CALL;
else if(((DemoHXSDKHelper)HXSDKHelper.getInstance()).isRobotMenuMessage(message))
return message.direct == Direct.RECEIVE ? MESSAGE_TYPE_RECV_ROBOT_MENU : MESSAGE_TYPE_SENT_ROBOT_MENU;
else
return message.direct == Direct.RECEIVE ? MESSAGE_TYPE_RECV_TXT : MESSAGE_TYPE_SENT_TXT;
}
if (message.getType() == Type.IMAGE) {
return message.direct == Direct.RECEIVE ? MESSAGE_TYPE_RECV_IMAGE : MESSAGE_TYPE_SENT_IMAGE;
}
if (message.getType() == Type.LOCATION) {
return message.direct == Direct.RECEIVE ? MESSAGE_TYPE_RECV_LOCATION : MESSAGE_TYPE_SENT_LOCATION;
}
if (message.getType() == Type.VOICE) {
return message.direct == Direct.RECEIVE ? MESSAGE_TYPE_RECV_VOICE : MESSAGE_TYPE_SENT_VOICE;
}
if (message.getType() == Type.VIDEO) {
return message.direct == Direct.RECEIVE ? MESSAGE_TYPE_RECV_VIDEO : MESSAGE_TYPE_SENT_VIDEO;
}
if (message.getType() == Type.FILE) {
return message.direct == Direct.RECEIVE ? MESSAGE_TYPE_RECV_FILE : MESSAGE_TYPE_SENT_FILE;
}
return -1;// invalid
}
示例2: onEvent
/**
* 监听事件
*/
@Override
public void onEvent(EMNotifierEvent event) {
switch (event.getEvent()) {
case EventNewMessage: // 普通消息
EMMessage message = (EMMessage) event.getData();
// 提示新消息
DemoHelper.getInstance().getNotifier().onNewMsg(message);
refreshUIWithMessage();
break;
case EventOfflineMessage: {
refreshUIWithMessage();
break;
}
case EventConversationListChanged: {
refreshUIWithMessage();
break;
}
case EventNewCMDMessage:
EMMessage cmdMessage = (EMMessage) event.getData();
//获取消息body
CmdMessageBody cmdMsgBody = (CmdMessageBody) cmdMessage.getBody();
final String action = cmdMsgBody.action;//获取自定义action
if(action.equals(EaseConstant.EASE_ATTR_REVOKE)){
EaseCommonUtils.receiveRevokeMessage(this, cmdMessage);
}
refreshUIWithMessage();
break;
case EventReadAck:
// TODO 这里当此消息未加载到内存中时,ackMessage会为null,消息的删除会失败
EMMessage ackMessage = (EMMessage) event.getData();
EMConversation conversation = EMChatManager.getInstance().getConversation(ackMessage.getTo());
// 判断接收到ack的这条消息是不是阅后即焚的消息,如果是,则说明对方看过消息了,对方会销毁,这边也删除(现在只有txt iamge file三种消息支持 )
if(ackMessage.getBooleanAttribute(EaseConstant.EASE_ATTR_READFIRE, false)
&& (ackMessage.getType() == Type.TXT
|| ackMessage.getType() == Type.VOICE
|| ackMessage.getType() == Type.IMAGE)){
// 判断当前会话是不是只有一条消息,如果只有一条消息,并且这条消息也是阅后即焚类型,当对方阅读后,这边要删除,会话会被过滤掉,因此要加载上一条消息
if(conversation.getAllMessages().size() == 1 && conversation.getLastMessage().getMsgId().equals(ackMessage.getMsgId())){
if (ackMessage.getChatType() == ChatType.Chat) {
conversation.loadMoreMsgFromDB(ackMessage.getMsgId(), 1);
} else {
conversation.loadMoreGroupMsgFromDB(ackMessage.getMsgId(), 1);
}
}
conversation.removeMessage(ackMessage.getMsgId());
}
refreshUIWithMessage();
break;
default:
break;
}
}
示例3: onEvent
/**
* 事件监听,registerEventListener后的回调事件
*
* see {@link EMNotifierEvent}
*/
@Override
public void onEvent(EMNotifierEvent event) {
switch (event.getEvent()) {
case EventNewMessage:
// 获取到message
EMMessage message = (EMMessage) event.getData();
String username = null;
// 群组消息
if (message.getChatType() == ChatType.GroupChat || message.getChatType() == ChatType.ChatRoom) {
username = message.getTo();
} else {
// 单聊消息
username = message.getFrom();
}
// 如果是当前会话的消息,刷新聊天页面
if (username.equals(toChatUsername)) {
messageList.refreshSelectLast();
// 声音和震动提示有新消息
EaseUI.getInstance().getNotifier().viberateAndPlayTone(message);
} else {
// 如果消息不是和当前聊天ID的消息
EaseUI.getInstance().getNotifier().onNewMsg(message);
}
break;
case EventDeliveryAck:
case EventReadAck:
// 获取到message
EMMessage ackMessage = (EMMessage) event.getData();
// 判断接收到ack的这条消息是不是阅后即焚的消息,如果是,则说明对方看过消息了,对方会销毁,这边也删除(现在只有txt iamge file三种消息支持 )
if(ackMessage.getBooleanAttribute(EaseConstant.EASE_ATTR_READFIRE, false)
&& (ackMessage.getType() == Type.TXT || ackMessage.getType() == Type.VOICE || ackMessage.getType() == Type.IMAGE)){
conversation.removeMessage(ackMessage.getMsgId());
}
messageList.refresh();
break;
case EventOfflineMessage:
// a list of offline messages
// List<EMMessage> offlineMessages = (List<EMMessage>)
// event.getData();
messageList.refresh();
break;
case EventNewCMDMessage:
EMMessage cmdMessage = (EMMessage) event.getData();
//获取消息body
CmdMessageBody cmdMsgBody = (CmdMessageBody) cmdMessage.getBody();
final String action = cmdMsgBody.action;//获取自定义action
if(action.equals(EaseConstant.EASE_ATTR_REVOKE)){
EaseCommonUtils.receiveRevokeMessage(getActivity(), cmdMessage);
messageList.refresh();
}
break;
default:
break;
}
}