截图后保存到xml中是用图片的信息来进行保存的,只需要通过图片的路径在本地找到对应的图片,加载到历史消息显示面板中即可。
代码如下
String[] strs = body.split(" ");
for(int i = 0; i < strs.length; i++){
//表情
if(strs[i].contains(":") || strs[i].contains("(") || strs[i].contains(")") ){
try{
URL emoticon_url = emoticonManager.getEmoticonURL(emoticonManager.getEmoticon(strs[i]));
String emoticon_path = emoticon_url.getPath();
emoticon_path = "file:///C|/" + emoticon_path.substring(emoticon_path.indexOf(":/") + 2);
strs[i] = "<img src='"+ emoticon_path + "'/>";
}catch (Exception e) {
}finally{
}
}
//截图
if(strs[i].contains("Tmp://")){
String tmpPath = strs[i].substring(strs[i].indexOf("Tmp://") + 6, strs[i].indexOf("#"));
File rootPath = new File(Spark.getSparkUserHome(), "/tempImages");
File f = new File(rootPath.getAbsolutePath(), tmpPath);
URL fileURL=null;
try {
fileURL = f.toURI().toURL();//本地URL html可识别
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String file_path=fileURL.getPath();
file_path = "file:///C|/" + file_path.substring(file_path.indexOf(":/") + 2);
if(f.exists()){
strs[i] = "<img src='"+ file_path + "'/>";
}else{
strs[i] = "<img src='"+ f.getAbsolutePath() + "'/>";
}
}
if(strs[i].contains("<img>")){//自定义的标签<img>
strs[i]= strs[i].substring(0,strs[i].indexOf("<img>"));
}
builder.append(strs[i]);
}
效果如图所示:
- 大小: 83.8 KB
分享到:
相关推荐
在iOS平台上实现XMPP群聊功能,涉及到的知识点包括XMPP框架的选择与使用、多用户聊天室的创建、用户身份验证、消息收发以及事件监听等。 首先,iOS开发中常用的XMPP框架有XMPPFramewok和SwiftXMPP等。XMPPFramewok...
在这个特定的场景中,"Flex实现的xmpp消息发送接收"是指使用Flex技术来实现在Android、iOS等移动设备以及IE浏览器上的即时通讯功能。 XMPP(Extensible Messaging and Presence Protocol)是一种开放标准的协议,...
XMPP 聊天、群聊、图片、语音,1、首家支持聊天室群聊 2、支持和微信一样的语音聊天,可以显示时长、未读状态,自动轮播未读语音; 3、支持发送图片、表情、GIF动画表情等; 4、数据库分库分表,速度极快,...
在iOS开发中,XMPP(Extensible Messaging and Presence Protocol)是一种常见的实时通信协议,常用于构建即时消息应用,如QQ、微信等。本项目“ios-xmpp聊天界面.zip”提供了实现QQ登录、注册、添加好友、删除好友...
在完成以上步骤后,你将拥有一个功能完备的Android XMPP聊天应用,支持文字、表情、语音和图片的发送。在实际开发中,还可以考虑增加群聊、文件传输、推送通知等功能,以满足更多需求。记住,实践是检验真理的唯一...
- 描述了与消息流相关的特性,帮助理解消息在系统中的流转过程。 #### 九、安全性事项 - 讨论了实现高级消息处理过程中可能面临的安全挑战及其解决方案。 #### 十、IANA事项 - 详细说明了与IETF相关的一些注册和...
在实际应用中,XMPP被广泛应用于互联网中的即时通讯、实时通信以及在不同网络平台间的消息同步等场景。同时,它还支持多语言处理,为全球不同地区的开发者提供了便利。 总的来说,XMPP协议因其开放性、扩展性、实时...
文件传输在XMPP中通常通过XEP-0096(文件传输)扩展实现。这需要在客户端和服务器之间建立单独的文件传输通道,并通过IQ(信息查询)消息传递文件元数据和实际的文件数据。 此外,考虑到网络连接的不稳定性和用户...
在Android平台上实现XMPP协议的语音、图片和文本聊天功能是一项常见的需求,XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通讯协议,广泛应用于即时通讯应用的开发。以下将详细介绍如何在...
XMPP的核心功能满足了RFC 2779中定义的基本即时消息和出席信息需求,如用户间的消息交换、出席信息共享、订阅与被订阅管理、联系人列表(在XMPP中称为"roster")维护以及通信屏蔽。同时,协议设计允许即时消息和出席...
在XMPP中,群聊通常通过多用户聊天(MUC,Multi-User Chat)服务实现。MUC允许多个用户在一个聊天室中进行实时交流。在ejabberd服务器上,你可以创建并管理这些聊天室。 接下来,我们需要关注以下关键步骤: 1. **...
- 描述了XMPP中如何建立会话的过程,包括客户端和服务器之间的认证与握手。 4. **交换消息**: - 阐述了发送和接收即时消息的方法,包括指定接收者、消息类型、主体等细节。 5. **交换出席信息**: - 客户端和...
在这个项目中,我们利用Smack-4.2.1库来实现在Android上使用XMPP进行各种交互,如登录、注册、发送单聊消息、加入聊天室和发送群聊消息等基本功能。 首先,我们需要了解Smack-4.2.1。Smack是一个开源的Java库,专门...
2. **实体与地址**:在XMPP中,所有参与通信的都是“实体”,如用户、服务器、组件等,它们都有唯一的全局JID(Jabber ID),类似于电子邮件地址,例如`user@domain.tld`。 3. **即时通讯**:XMPP支持一对一和多对...
在XMPP中,群组通常被称为“多用户聊天室”(MUC)。首先,客户端需要创建一个新的MUC,指定房间名、主题和权限等参数。然后,其他用户可以通过加入这个房间参与群聊。在Android应用中,可以提供一个界面让用户搜索...
消息推送是XMPP的一个重要应用场景,特别是在移动设备上。传统的HTTP长轮询或短轮询方式在电池寿命和资源消耗上存在问题,而XMPP提供了更有效的方法。当服务器有新消息时,可以立即推送给已在线的客户端,无需客户端...
在手机端消息推送中,XMPP扮演着关键角色,它允许应用程序通过服务器进行双向通信,使得用户即使在后台也能接收到即时消息。Openfire是一个流行的开源XMPP服务器,它提供了强大的实时通讯能力,支持多种平台,包括...
本文将深入探讨如何在Android上基于XMPP协议实现消息推送,以及相关的技术细节。 首先,理解XMPP的基本原理是至关重要的。XMPP建立在TCP连接之上,通过XML流传输数据,使得服务器和客户端能够进行双向通信。它提供...