最近在做一个即时通信的软件,功能和界面上都模拟QQ、MSN等。相信这些软件用户交互界面可以获得较好的用户体验。软件的功能要强大,但是界面也同样重要。
         网上查了一些资料,很多提问关于QQ好友上线头像闪动是怎样实现的?
         前边说到是模拟,就是说我们还没有能力像qq那样自己编写控件,网上很多人讲了解决的方法。不过原理都是很相似的,仔细看一下qq接受到消息的时候。头像的跳动轨迹----左下-->中上-->右下-->中上 三个状态循环。中间的间隔时间大约在300~500ms.(大约估计的)。很多人讲可以用一个gif图片来替换。这个方法是很简单,虽软编成是简单了,可以那么多头像都要给它们做一个gif的副本?要是程序支持自定义头像,显然是走了弯路了。看看QQ文件夹下的NEWFAC文件夹,也是只有单个头像,没有GIF副本。虽然我们不知道QQ是怎样做到的(应该是自己写的控件,可能继承自TreeView之类的),那些就不关心了。既然要模仿的是效果看下面的截图
                                                     

private void creatNewImage() 2 { 3 Control.CheckForIllegalCrossThreadCalls = false; 4 //跨线程调用,.NET Framework 2.0会出现这个问题,可以在创建控件的基础句柄所在线程上异步执行指定委托 5 //这里为了演示一下效果,所以没有采用那种方式 6 Bitmap bmp = new Bitmap(22,20);//大小视情况而定,不要影响到界面其他地方 7 Graphics gph; 8 //从指定的Image对象创建新Graphics对象 9 gph = Graphics.FromImage(bmp); 10 Bitmap mybit = new Bitmap(buttonItem2.Image); 11 Bitmap bit2 = new Bitmap(buttonItem1.Image); 12 while (true) 13 { 14 gph.Clear(Color.White); 15 gph.DrawImage(mybit, 0, 1, 20, 20); 16 buttonItem2.Image = bmp;//接受到消息,头像跳动 17 buttonItem1.Image = mybit;//这个是部门分组前边,好友头像的闪动提示 18 Thread.Sleep(300); 19 20 gph.Clear(Color.White); 21 gph.DrawImage(mybit, 1, 0, 20, 20); 22 buttonItem2.Image = bmp; 23 Thread.Sleep(300); 24 25 gph.Clear(Color.White); 26 gph.DrawImage(mybit, 2, 1, 20, 20); 27 buttonItem2.Image = bmp; 28 buttonItem1.Image = bit2; 29 Thread.Sleep(300); 30 31 gph.Clear(Color.White); 32 gph.DrawImage(mybit, 1, 0, 20, 20); 33 buttonItem2.Image = bmp; 34 Thread.Sleep(300); 35 36 }

通过在内存中的Bitmap的绘制(图像按照左下、中上、右下的方向平移绘制),然后按照时间间隔替换好友Item上的Image。可以达到QQ好友上线的头像跳动,然后在系统托盘上也显示类似的闪动。
          当收到服务器转发过来的消息的时候启动一个以这个方法入口的线程,可以显示头像提示,当然加入滴、滴、滴的提示声音就更生动了。鼠标点击后,弹出聊天窗口。终止线程。为了实现头像闪动的效果,我是这样想的,如果各位还有好的方法,不妨交流一下。
         我用的空间是DotNetBar中ItemPanel控件,实现分组的,折叠。因为准备做一个漂亮的界面效果。所以用了第三方的控件。估计vs2005中的TreeView也可以的。嘿嘿好友类表还是用tree好一点,不过在DotNetBar中没有找到那个控件。

模拟QQ上线头像闪动效果相关推荐

  1. 模拟QQ好友上线头像闪动效果

    最近在做一个即时通信的软件,功能和界面上都模拟QQ.MSN等.相信这些软件用户交互界面可以获得较好的用户体验.软件的功能要强大,但是界面也同样重要.         网上查了一些资料,很多提问关于QQ ...

  2. 模拟QQ聊天小项目收尾---界面展示服务端与客户端进行信息交互(用到的知识:io,线程,Swing界面,面向对象思想...... )

    大家好,我是一位在java学习圈中不愿意透露姓名并苟且偷生的小学员,如果文章有错误之处,还望海涵,欢迎多多指正 如果你从本文学到有用的干货知识,那么请您尽量点赞,关注,评论,收藏 这两天我一直在设计这 ...

  3. java qq托盘 消息提醒_如何仿QQ实现托盘闪动消息提醒

    当QQ收到好友的消息时,托盘的图标会变成好友的头像,并闪动起来,点击托盘,就会弹出与好友的聊天框,随即,托盘恢复成QQ的图标,不再闪动.当然,如果还有其它的好友的消息没有提取,托盘的图标会变成另一个好 ...

  4. 关于QQ群头像以及微信讨论组头像的工具类

    QQ群头像以及微信讨论组头像工具类介绍  介绍: 由于段时间公司项目需求,在翻了网上很多代码后发现,很多人用的是自定义View的办法来实现此类头像的效果,但是,这样一来就必须改变项目中原有的控件,而且 ...

  5. 大蟒蛇python头像_程序员用Python获取了自己以前的QQ历史头像,以前的非主流形象简直不忍直视...

    Python获取任意QQ历史头像,事实证明都是从屌丝走过来的 前言 这个东西可以通过浏览器F12开发者工具获取或者使用Fiddler工具抓包. 步骤: 1.手动登陆这个网址: 并输入你的qq号和密码( ...

  6. java 气泡聊天消息_Java Swing实现的仿QQ气泡消息聊天窗口效果

    下面讲讲聊天窗口的上半部分聊天消息显示区域的具体实现,尤其是气泡的绘制.图文的混排实现. 先讲讲气泡的实现思路.开始我想过很多气泡的实现方法,在研究了JTextPane的文档类及其内容插入删除排版后, ...

  7. android 仿qq修改头像,Qt:小项目仿QQ修改头像界面,技术点记录

    最近写了一个修改头像功能的UI,布局参考了QQ目前的修改头像界面.如下图 这里主要说明一下两个地方的技术:1.头像图片上层的遮罩层,圆形外部为灰色,内部为全透明:2.上传图片宽高比例可以通过鼠标拖拽移 ...

  8. 用 Python 将 QQ 好友头像生成祝福语

    本文我们来看一下如何使用 Python 将 QQ 好友头像拼成"五一快乐"四个字.我们可以将整个实现过程分为两步:爬取 QQ 好友头像.利用好友头像生成文字. 爬取头像 爬取 QQ ...

  9. java实现qq空间模块_Java实现模拟QQ空间图片上传

    Java实现模拟QQ空间图片上传 首先看效果: 首先编写我们的上传jsp代码,如下: pageEncoding="UTF-8"%> html PUBLIC "-// ...

最新文章

  1. .net framework 2.0 安装包下载url
  2. 深入浅出grep与正则表达式
  3. 公安部拟规定:窃取个人信息不构成犯罪也处罚
  4. 通讯传输--全双工和半双工
  5. 员外陪你读论文:DeepWalk: Online learning of Social Representations
  6. Eclipse Neon 配置C/C++开发环境
  7. zookeeper的名词复盘-Stat状态信息
  8. 一个典型的SAP Commerce extension目录结构
  9. 云存储应用是视频监控系统发展的必然需求
  10. ICPC程序设计题解书籍系列之二:刘汝佳:《算法竞赛入门经典训练指南》
  11. CFS 调度器数据结构篇
  12. 法拉科机器人编程软件_【新提醒】FANUC发那科机器人离线编程与设计模拟仿真软件Roboguide 步骤、功能与技巧...
  13. tomcat下载安装及配置教程
  14. Python 数据结构之二叉树的实现
  15. zookeeper入门篇
  16. Python模拟银行管理系统(面向对象)# 谭子
  17. 木门工厂木门、门套、套线公式和算法
  18. 使用 Linux 文件恢复工具
  19. 怎样保留应届生身份?应届生的身份有多重要?
  20. php__file__用法,PHP 的常量__FILE__的用法图解

热门文章

  1. python json变为csv具体代码
  2. 葫芦书笔记----经典算法
  3. python零基础一
  4. 2017年「编码美丽」公众号优秀精华文章回顾,感谢有您的一路陪伴!
  5. springAOP事物管理不生效原因总结————转载收藏于: superdog007
  6. 保证EasyClick后台允许运行
  7. Word 2003 该工程中的宏被禁止,请查阅联机文档解决的解决办法
  8. 浙江工商大学理学统计学813概率论与数理统计考研总结
  9. 近年全球网络安全领域投融资整体特点
  10. mysql pt监控_percona-toolkit对MySQL的复制和监控类操作教程