/**定义两个人的头像*/ Myhead = "<img src=qrc:/chatdemo/Msg/Head.png width='30px'heigth='30px'>"; QString strHead = QString("C:/Users/tax10_000/Desktop/ql_184555_828078.jpg"); otherhead = QString ("<img src=%1 width='30px' heigth=…
最近公司有个项目,是要求实现类似 QQ 聊天这种功能的. 如下图 这没啥难的,稍微复杂的也就表情的解析而已. 表情在传输过程中的实现参考了新浪微博,采用半角中括号代表表情的方式.例如:“abc[doge]def”就会显示 abc,然后一个,再 def. 于是动手就干. 创建一个模板控件来进行封装,我就叫它 ChatMessageControl,有一个属性 Text,表示消息内容.内部使用一个 TextBlock 来实现. 于是博主三下五除二就写出了以下代码: C# [TemplatePart(N…
一.知识点: QQ聊天界面 双模型的使用(dataModel和frameModel) UITextField的使用 通知的使用 拉伸图片的两种方法(slicing/image对象的resizeableImageWithCapInsets属性) 枚举 方法的抽取(相同的拿出,不同的部分作为参数) 二.设置tableview的基本格式 1)定义tableview基本 numberOfSectionsInTableView:设置块 numberOfRowsInSection:设置每块对应的行数 cel…
QQChat Layout - 第二季 本来第二季是快写好了, 也花了点功夫, 结果gitbook出了点问题, 给没掉了.有些细节可能会一带而过, 如有疑问, 相互交流进步~. 在第一季中我们完成了QQ聊天界面的基本框架.但是相对于iphone上手机QQ的聊天界面还存在以下差距. 第二季中的工程源文件下载地址:点击到百度云下载 聊天消息没有左右区分. 聊天内容没有背景图片. 菜单栏还没做出, 不能发消息. 现在我们就一步步来解决这些问题.首先我们解决消息没有左右区分的问题. 第四步: 我们打开S…
我写的源文件整个工程会再第二季中发上来~,存在百度网盘, 感兴趣的童鞋, 可以关注我的博客更新,到时自己去下载~.喵~~~ QQChat Layout - 第一季 一.准备工作 1.将假数据messages.plist和icon图片文件导入工程中. 2.创建相应的数据模型message, 保持数据模型的属性名和plist中的一样.为message类提供便利构造器.(由于与plist的名字保持一致,所以我们使用KVC技术来初始化数据模型, 其会去找和字典中同名的属性自动赋值). #import <…
高仿qq聊天界面,给有需要的人,界面效果如下: 真心觉得做界面非常痛苦,给有需要的朋友. chat.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LinearLayout1" android:…
在很多WEB项目中,需要提供在线服务的功能,加上自己的联系方式,例如:QQ,不用添加QQ好友也可以交谈,那这到底是怎么实现的呢? 对于这个功能,需要提到一个组件,即“QQ通讯组件”.QQ通讯组件是一种灵活的通讯工具,支持所有QQ版本的用户在没有加你为好友的前提下向您发起临时会话,让沟通无距离:将您的QQ在线状态发布在互联网上(论坛.博客.邮箱等),他人点击即可与您联系,沟通就这么一“点”距离.“QQ通讯组件”需要开通后才能使用.对于从未开通过“QQ通讯组件”的用户来说,登录wp.qq.com即可…
在实现qq聊天界面的过程中,使用UITableViewCell碰到了不少问题,这里还是记录一下以免遗忘. 气泡聊天cell的实现,网上最多的方法还是: 1.手动计算设置frame的值,文本的size使用boundingRectWithSize函数动态计算 2.气泡的实现,拉伸使用resizableImageWithCapInsets函数,还需要设置文本UILabel的frame在气泡之内 因为后来发现tableView在绘制cell时是先询问高度,再询问cell,可是询问高度时cell还未计算,…
最近仿照QQ聊天做了一个类似界面,先看下界面组成(画面不太美凑合凑合呗,,,,):…
在自己应用中打开第三方应用,有好多种方法,这里举例一种: //以打开微信为例,前提需要知道打开应用的包名,一般一个发布版本的应用,包名不会轻易改变的,但是,打开QQ就要注意了,毕竟QQ的发布版本有不下于4个版本. Intent intent = getPackageManager().getLaunchIntentForPackage("com.tencent.mm"); startActivity(intent); 可以从第三方应用跳转到QQ界面,并可以进入指定的QQ号码的聊天界面(…