著录项信息
专利名称 | 一种控制客户端用户显示模式的方法及系统 |
申请号 | CN201010228014.0 | 申请日期 | 2010-07-07 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2012-01-11 | 公开/公告号 | CN102314700A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06T13/00 | IPC分类号 | G;0;6;T;1;3;/;0;0;;;H;0;4;L;1;2;/;5;8查看分类表>
|
申请人 | 腾讯科技(深圳)有限公司 | 申请人地址 | 广东省深圳市福田区振兴路赛格科技园2栋东403室
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 腾讯科技(深圳)有限公司 | 当前权利人 | 腾讯科技(深圳)有限公司 |
发明人 | 任旻;张强 |
代理机构 | 北京派特恩知识产权代理有限公司 | 代理人 | 蒋雅洁;张颖玲 |
摘要
本发明公开了一种控制客户端用户显示模式的方法,该方法包括:创建动画类的实例化类对象,将创建的实例化类对象加入一个动画队列;由动画队列以时间为序列,对创建的实例化类对象及动画类属性进行刷新获得卡片控件运行的轨迹点,根据获得的轨迹点控制客户端用户显示模式的动态展现。本发明还公开了一一种控制客户端用户显示模式的系统,该系统包括控制单元,用于由动画队列以时间为序列,对创建的实例化类对象及动画类属性进行刷新获得卡片控件运行的轨迹点,根据获得的轨迹点控制客户端用户显示模式的动态展现。采用本发明的方法及系统,能增强即时通讯(IM)工具的易用性。
1.一种控制客户端用户显示模式的方法,其特征在于,该方法包括:
创建动画类的实例化类对象,创建的实例化类对象具体为三个实例化类对象时,所述三个实例化类对象分别控制卡片控件的飞入角度(Angle)、卡片控件的横坐标方向的飞入位置(CenterX)和卡片控件的纵坐标方向的飞入位置(CenterY),对所述三个实例化类对象中的各个动画类属性赋值,将创建的实例化类对象加入一个动画队列;
由所述动画队列以时间为序列,对创建的实例化类对象及动画类属性进行刷新获得基于时间的卡片控件运行的轨迹点,根据获得的轨迹点实现卡片控件拟物化的设计,播放所述动画队列中由所述三个实例化类对象所对应指向的所述卡片控件,以控制客户端呈现多样化的用户显示模式的动态展现。
2.根据权利要求1所述的方法,其特征在于,每个卡片控件对应三个实例化类对象;所述动画队列中包括所有卡片控件对应的三个实例化类对象;所述播放具体包括:遍历所述动画队列中所有实例化对象所对应指向的卡片控件实现所述播放。
3.根据权利要求1或2所述的方法,其特征在于,创建实例化类对象之前,该方法还包括:根据容器当前页数和每页卡片控件的数量判断是否对所述卡片控件采用预设的卡片控件的动画飞入模式;其中,所述卡片控件置于所述容器中。
4.根据权利要求3所述的方法,其特征在于,所述卡片控件的动画飞入模式包括:卡片控件的减速飞入模式、卡片控件的定向位置飞入模式、卡片控件的随机位置飞入模式、卡片控件飞入不重叠模式中至少一种的组合;
所述卡片控件的动画飞入模式为:所述卡片控件的随机位置飞入模式和所述卡片控件飞入不重叠模式的组合时,该方法还包括:设置卡片控件的排列表格;进行坐标变换,并将基于所述容器的坐标系转换成基于所述排列表格的坐标系;获得所述卡片控件的结束位置,最终将位于所述容器中的所述卡片控件逐一置于所述排列表格中。
5.根据权利要求4所述的方法,其特征在于,所述排列表格的表格列数Column=容器宽度/MaxWidth;所述排列表格的表格行数Row=容器高度/MaxWidth;其中,所述MaxWidth为所述卡片控件的最大宽度;
所述卡片控件在所述坐标变换之前,在所述容器中采用分页显示的方式,每页显示的卡片控件的数量小于Column×Row。
6.根据权利要求5所述的方法,其特征在于,所述卡片控件的结束位置采用以下公式计算获得:
CenterX=R×MaxWidth;
CenterY=C×MaxWidth;
其中,R为0~Row中随机获得的一个整数;C为0~Column中随机获得的一个整数。
7.一种控制客户端用户显示模式的系统,其特征在于,该系统包括:控制单元,用于创建动画类的实例化类对象,创建的实例化类对象具体为三个实例化类对象时,所述三个实例化类对象分别控制卡片控件的飞入角度(Angle)、卡片控件的横坐标方向的飞入位置(CenterX)和卡片控件的纵坐标方向的飞入位置(CenterY),对所述三个实例化类对象中的各个动画类属性赋值,将创建的实例化类对象加入一个动画队列的情况下,由所述动画队列以时间为序列,对创建的实例化类对象及动画类属性进行刷新获得基于时间的卡片控件运行的轨迹点,根据获得的轨迹点实现卡片控件拟物化的设计,播放所述动画队列中由所述三个实例化类对象所对应指向的所述卡片控件,以控制客户端呈现多样化的用户显示模式的动态展现。
8.根据权利要求7所述的系统,其特征在于,所述控制单元,进一步还包括判断模块,用于根据容器当前页数和每页卡片控件的数量判断是否对所述卡片控件采用预设的卡片控件的动画飞入模式;其中,所述卡片控件置于所述容器中。
一种控制客户端用户显示模式的方法及系统\n技术领域\n[0001] 本发明涉及控制技术,尤其涉及一种控制客户端用户显示模式的方法及系统。\n背景技术\n[0002] 即时通讯(IM)工具作为互联网用户间进行交互的客户端,发展到今天,已经被大多数的用户所接受,并成为用户间通过互联网进行交互的不可或缺的技术手段。由于IM工具的引入极大的丰富了用户的生活,在日常沟通,工作沟通等诸多方面为用户提供了便利,不但在用户日常的休闲娱乐中,而且在用户的工作中同样得到广泛的使用,因此用户对IM工具的易用性、稳定性、安全性等方面提出了更高的要求。\n[0003] 随着技术的发展,目前逐步出现了Surface、iPhone等自然用户界面(NUI)产品的日益普及,Surface是微软推出的一种支持多点触摸的计算机设备,iPhoneiPhone是苹果公司推出的一种支持多点触摸的移动电话。NUI是对终端显示模式的改进,从而对作为客户端的IM工具的发展提出了新需求,即为:需要对客户端用户的显示模式也进行改进,以适应技术的发展,提供多样性的显示模式供用户使用,以增强IM工具的易用性。然而,针对这一新需求,目前尚未存在有效的解决方案。\n发明内容\n[0004] 有鉴于此,本发明的主要目的在于提供一种控制客户端用户显示模式的方法及系统,能增强IM工具的易用性。\n[0005] 为达到上述目的,本发明的技术方案是这样实现的:\n[0006] 一种控制客户端用户显示模式的方法,该方法包括:\n[0007] 创建动画类的实例化类对象,将创建的实例化类对象加入一个动画队列;\n[0008] 由所述动画队列以时间为序列,对创建的实例化类对象及动画类属性进行刷新获得卡片控件运行的轨迹点,根据获得的轨迹点控制客户端用户显示模式的动态展现。\n[0009] 其中,创建的实例化类对象具体为三个实例化类对象时,所述三个实例化类对象分别控制卡片控件的飞入角度(Angle)、卡片控件的横坐标方向的飞入位置(CenterX)和卡片控件的纵坐标方向的飞入位置(CenterY);\n[0010] 将所述三个实例化类对象加入所述动画队列前,该方法还包括:对所述三个实例化类对象中的各个动画类属性赋值;\n[0011] 赋值后,该方法还包括:播放所述动画队列中由所述三个实例化类对象所对应指向的所述卡片控件。\n[0012] 其中,每个卡片控件对应三个实例化类对象;所述动画队列中包括所有卡片控件对应的三个实例化类对象;所述播放具体包括:遍历所述动画队列中所有实例化对象所对应指向的卡片控件实现所述播放。\n[0013] 其中,创建实例化类对象之前,该方法还包括:根据容器当前页数和每页卡片控件的数量判断是否对所述卡片控件采用预设的卡片控件的动画飞入模式;其中,所述卡片控件置于所述容器中。\n[0014] 其中,所述卡片控件的动画飞入模式包括:卡片控件的减速飞入模式、卡片控件的定向位置飞入模式、卡片控件的随机位置飞入模式、卡片控件飞入不重叠模式中至少一种的组合;\n[0015] 所述卡片控件的动画飞入模式为:所述卡片控件的随机位置飞入模式和所述卡片控件飞入不重叠模式的组合时,该方法还包括:设置卡片控件的排列表格;进行坐标变换,并将基于所述容器的坐标系转换成基于所述排列表格的坐标系;获得所述卡片控件的结束位置,最终将位于所述容器中的所述卡片控件逐一一置于所述排列表格中。\n[0016] 其中,所述排列表格的表格列数Column=容器宽度/MaxWidth;所述排列表格的表格行数Row=容器高度/MaxWidth;其中,所述MaxWidth为所述卡片控件的最大宽度;\n[0017] 所述卡片控件在所述坐标变换之前,在所述容器中采用分页显示的方式,每页显示的卡片控件的数量小于Column×Row。\n[0018] 其中,所述卡片控件的结束位置采用以下公式计算获得:\n[0019] CenterX=R×MaxWidth;\n[0020] CenterY=C×MaxWidth;\n[0021] 其中,R为0~Row中随机获得的一个整数;C为0~Column中随机获得的一个整数。\n[0022] 一种控制客户端用户显示模式的系统,该系统包括:控制单元,用于在创建动画类的实例化类对象,将创建的实例化类对象加入一个动画队列的情况下,由所述动画队列以时间为序列,对创建的实例化类对象及动画类属性进行刷新获得卡片控件运行的轨迹点,根据获得的轨迹点控制客户端用户显示模式的动态展现。\n[0023] 其中,所述控制单元,进一步包括创建模块和播放模块;其中,[0024] 创建模块,用于创建三个实例化类对象;所述三个实例化类对象分别控制卡片控件的Angle、卡片控件的CenterX和卡片控件的CenterY;\n[0025] 所述播放模块,用于对所述三个实例化类对象中的各个动画类属性赋值后,将所述三个实例化类对象加入动画队列;播放所述动画队列中由所述三个实例化类对象所对应指向的所述卡片控件。\n[0026] 其中,所述控制单元,进一步还包括判断模块,用于根据容器当前页数和每页卡片控件的数量判断是否对所述卡片控件采用预设的卡片控件的动画飞入模式;其中,所述卡片控件置于所述容器中。本发明创建动画类的实例化类对象,将创建的实例化类对象加入一个动画队列;由动画队列以时间为序列,对创建的实例化类对象及动画类属性进行刷新获得卡片控件运行的轨迹点,根据获得的轨迹点控制客户端用户显示模式的动态展现。\n[0027] 采用本发明,实现了控制客户端用户的显示模式用多样化的卡片控件形式展现,从而能提供多样性的显示模式供用户使用,以增强IM工具的易用性。而且,本发明区别于现有基于帧的卡片控件展现技术方案,本发明是基于时间的卡片控件展现技术方案,由于现有技术是基于帧,因此,动画同步效果的好坏需取决于计算机系统自身硬件的性能,比如当计算机显卡的自身机械性能不好时,显示会有延迟,导致卡片控件的动画同步效果差;而本发明基于时间,因此,计算机系统自身硬件的性能好坏并不会影响到卡片控件的的动画同步效果;本发明还可以强制高帧率,降低对性能的消耗。\n附图说明\n[0028] 图1为本发明卡片控件的示意图;\n[0029] 图2为本发明卡片控件一实例的示意图;\n[0030] 图3为本发明卡片控件另一实例的示意图;\n[0031] 图4为本发明方法一最优实施例的实现流程示意图。\n具体实施方式\n[0032] 本发明的基本思想是:创建动画类的实例化类对象,将创建的实例化类对象加入一个动画队列;由动画队列以时间为序列,对创建的实例化类对象及动画类属性进行刷新获得卡片控件运行的轨迹点,根据获得的轨迹点控制客户端用户显示模式的动态展现。\n[0033] 为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例并参照附图,对本发明进一步详细说明。\n[0034] 本发明的方案实现了控制客户端用户的显示模式用多样化的卡片控件形式展现。\n由于利用卡片控件形式展现客户端用户的显示模式是一种拟物化的设计,因此,这种通过拟物化的设计获得多样化的显示模式供用户选择,能大大提升用户的体验感。在控制时,可以采用不同的动态显示模式进行展示,动态显示模式即为:卡片控件的动画飞入模式。卡片控件的动画飞入模式进一步可以包括:卡片控件的减速飞入模式、卡片控件的定向位置飞入模式、卡片控件的随机位置飞入模式等等。总之:采用本发明,用卡片控件形式这种拟物化的设计提供多样性的显示模式供用户使用,增强了IM工具的易用性。\n[0035] 一种控制客户端用户显示模式的方法,该方法主要包括:\n[0036] 一、创建动画类的实例化类对象,将创建的实例化类对象加入一个动画队列。\n[0037] 这里,动画类可以为DoubleAnimation类。\n[0038] 二、由动画队列以时间为序列,对创建的实例化类对象及动画类属性进行刷新获得卡片控件运行的轨迹点,根据获得的轨迹点控制客户端用户显示模式的动态展现。这里,所述由动画队列以时间为序列,对创建的实例化类对象及动画类属性进行刷新获得卡片控件运行的轨迹点,是指:以时间为基础组织动画队列中的各个实例化类对象,并对实例化类对象及动画类属性以时间为基础进行修改更新时,刷新获得卡片控件运行的轨迹点。\n[0039] 这里,创建的实例化类对象可以用于实现卡片控件的动画飞入模式。创建的实例化类对象具体为三个实例化类对象时,这三个实例化类对象分别控制卡片控件的飞入角度(Angle)、卡片控件的横坐标方向的飞入位置(CenterX)和卡片控件的纵坐标方向的飞入位置(CenterY)。对三个实例化类对象中的各个动画类属性赋值后,将三个实例化类对象加入动画队列;播放动画队列中由三个实例化类对象所对应指向的卡片控件。\n[0040] 这里,每个卡片控件对应三个实例化类对象;动画队列中包括所有卡片控件对应的三个实例化类对象;播放具体包括:遍历动画队列中所有实例化对象所对应指向的卡片控件实现播放。\n[0041] 这里,创建三个实例化类对象之前,该方法还包括:根据容器当前页数和每页卡片控件的数量判断是否对卡片控件采用预设的卡片控件的动画飞入模式;其中,卡片控件置于容器中。\n[0042] 这里,卡片控件的动画飞入模式包括:卡片控件的减速飞入模式、卡片控件的定向位置飞入模式、卡片控件的随机位置飞入模式、卡片控件飞入不重叠模式中至少一种的组合。\n[0043] 卡片控件的动画飞入模式为:卡片控件的随机位置飞入模式和卡片控件飞入不重叠模式的组合时,该方法还包括:设置卡片控件的排列表格;进行坐标变换,并将基于容器的坐标系转换成基于排列表格的坐标系;获得卡片控件的结束位置,最终将位于容器中的卡片控件逐一置于排列表格中,也就是说,将原来位于容器中的各个卡片控件分别置入排列表格中,采用这种组合模式,能确保排列表格中的每一个格子中只包括一个卡片控件,从而使得卡片控件之间互不重叠。\n[0044] 这里,排列表格的表格列数Column=容器宽度/MaxWidth;排列表格的表格行数Row=容器高度/MaxWidth;其中,MaxWidth为卡片控件的最大宽度;\n[0045] 卡片控件在所述坐标变换之前,在容器中采用分页显示的方式,每页显示的卡片控件的数量小于Column×Row。\n[0046] 这里需要指出的是:使得卡片控件之间互不重叠除了坐标变换外,关键还在于卡片控件的结束位置的计算方式。本发明采用的计算公式为:\n[0047] CenterX=R×MaxWidth;\n[0048] CenterY=C×MaxWidth;\n[0049] 其中,R为0~Row中随机获得的一个整数;C为0~Column中随机获得的一一个整数。\n[0050] 以下对本发明进行具体阐述。\n[0051] 1、如果应用IM工具时,上述客户端用户具体为IM联系人,针对IM联系人的卡片控件而言,本发明利用自定义的卡片控件实现IM联系人显示模式的展现。卡片控件上可以根据需要显示IM联系人的头像,显示IM联系人的昵称等用户信息。卡片控件的示意图如图1所示,可以包括用户头像和用户信息,卡片控件的实例如图2和图3所示。\n[0052] 各个卡片控件的布局可以通过模板进行定制。利用模板还可以为卡片控件更换背景图层和质感蒙板图层,以实现不同质感的IM联系人显示模式。\n[0053] 卡片控件拥有宽度(Width),高度(Height),卡片控件的飞入角度(Angle),卡片控件的横坐标方向的飞入位置(CenterX),卡片控件的纵坐标方向的飞入位置(CenterY)这些属性。其中,卡片控件位于容器中时,Angle也可以称为相对卡片控件中心的旋转角度,CenterX也可以称为卡片控件中心在容器中的横坐标,CenterY也可以称为卡片控件中心在容器中的纵坐标。\n[0054] 2、针对上述创建实现卡片控件的动画飞入模式的三个实例化类对象而言,由于对卡片控件的动态控制主要包括卡片控件位置的移动和转动,因此,需要连续修改Angle,CenterX和CenterY这几个属性。这些属性都是Double类型,而通过创建DoubleAnimation类,能控制Double类型的属性改变。从而针对这几个属性,为每个卡片控件分别创建的三个实例化类对象具体为DoubleAnimation类对象。三个DoubleAnimation类对象如下所示:\n[0055] AngleDoubleAnimation:用于负责卡片控件Angle属性的动画控制;\n[0056] CenterXAngleDoubleAnimation:用于负责卡片控件CenterX属性的动画控制;\n[0057] CenterYAngleDoubleAnimation:用于负责卡片控件CenterY属性的动画控制。\n[0058] 这三个DoubleAnimation类对象是对DoubleAnimation类实例化后生成的。对DoubleAnimation类进行说明,DoubleAnimation有以下属性:\n[0059] Target:控制的对象;\n[0060] TargetProperty:控制对象的Double属性;\n[0061] From:起始值;\n[0062] To:结束值;\n[0063] Duration:动画持续时间;\n[0064] Deceleration:减速度。\n[0065] 所有的DoubleAnimation对象都由一个动画队列控制。动画队列中有一个计时器,在每个计时器的时间片中,遍历队列中的所有DoubleAnimation对象,根据From、To、Duration属性的数值,修改Target对象的TargetProperty属性的值。\n[0066] 使用Deceleration属性创建在停止前减速的动画。Deceleration指定在将时间消逝从其最大速率减速到零的过程中所占用时间线的Duration的百分比。\n[0067] 3、针对上述设置卡片控件的动画飞入模式而言,当容器显示IM联系人的时候,表示IM联系人的卡片控件从容器四周飞入容器内。每个卡片控件的起始位置、起始角度、结束位置、结束角度以及飞入的速度都不同,在卡片控件接近结束位置时,卡片控件移动速度和旋转角速度逐渐变为0,呈现摩擦减速的效果。以下分别阐述:\n[0068] a)设置卡片控件的初始位置:卡片控件的初始位置在容器的外侧的4周。对于每张卡片控件:\n[0069] i.获取1-4之间的随机数,1,2,3,4分别表示容器的左侧,上侧,右侧和下侧;\n[0070] ii.如果是左侧,则卡片控件的初始位置相对与容器左上角的坐标为(-100,容器高度/2);\n[0071] iii.如果是上侧,则卡片控件的初始位置相对与容器左上角的坐标为(容器宽度/\n2,-100);\n[0072] iv.如果是右侧,则卡片控件的初始位置相对与容器左上角的坐标为(容器宽度+\n100,容器高度/2);\n[0073] v.如果是上侧,则卡片控件的初始位置相对与容器左上角的坐标为(容器宽度/2,容器高度+100)。\n[0074] b)设置卡片控件的结束位置,卡片控件的结束位置为容器内部的随机位置。\n[0075] c)设置卡片控件的初始角度\n[0076] 卡片控件的初始角度为360-720之间的随机数。\n[0077] d)设置卡片控件的结束角度\n[0078] 卡片控件的结束角度为0-360之间的随机数。这样每张卡片控件的旋转角度在0-\n720之间。\n[0079] e)设置卡片控件的速度\n[0080] 将每个卡片控件的AngleDoubleAnimation、CenterXAngleDoubleAnimation和CenterYAngleDoubleAnimation对象的Duration属性设置为0.5秒。由于每个卡片控件的移动距离,转动角度都不同,所以每个卡片控件飞入的速度和旋转的速度都不一样。\n[0081] f)设置卡片控件的减速模式\n[0082] 将每个卡片控件的AngleDoubleAnimation、CenterXAngleDoubleAnimation和CenterYAngleDoubleAnimation对象的Decelaration设置为0.9秒。这表示在0至0.9×Duration的时间段内,卡片控件做匀速运动,在0.9×Duration至Duration的时间内做减速运动。这样可以表现出卡片控件在飞入后在摩擦力的作用下,由运动到静止的拟物化效果。\n[0083] 4、针对上述卡片控件的动画飞入模式为:卡片控件的随机位置飞入模式和卡片控件飞入不重叠模式的组合时该方法的方案而言,本发明中利用卡片控件形式展现IM联系人,进行动画飞入模式控制时,除了能实现定向位置飞入模式、随机位置飞入模式、减速飞入模式模式,以实现拟物化效果,还能实现卡片控件飞入后互相不重叠。本发明可以将随机位置飞入模式与卡片控件飞入不重叠模式进行组合。由于卡片控件随机飞入放置会导致卡片控件之间互相重叠、遮盖,不利于用户查看。因此,为了避免这种情况产生,通过坐标变换及确定卡片控件飞入的结束位置,来保证卡片控件之间不重叠,具体通过下面的步骤实现:\n[0084] a)计算卡片控件的最大宽度\n[0085] 由于卡片控件的角度是随机的,所以卡片控件的最大宽度是卡片控件的对角线。\n卡片控件的最大宽度MaxWidth=Sqrt(Width^2+Height^2)\n[0086] b)定义排列表格\n[0087] 定义一个排列表格:\n[0088] 表格列数Column=容器宽度/MaxWidth;\n[0089] 表格行数Row=容器高度/MaxWidth;\n[0090] 定义二维数组LayoutTable[Row][Column],元素类型是Boolean。初始化数组使得所有元素的值为False。\n[0091] c)将卡片控件在排列表格中排布\n[0092] 当设置卡片控件的结束位置时,在0至Row中随机获得一个整数R,在0至Column中随机获得一个整数C。如果LayoutTable[R][C]的值为False,则LayoutTable[R][C]=True。\n并记录卡片控件对应R,C。\n[0093] 如果LayoutTable[R][C]的值为True,则重新获得R,C,直到LayoutTable[R][C]的值为False。\n[0094] 为了保证IM联系人的显示效果,所有卡片控件在容器中采用分页显示的方式,每页显示的卡片控件数量小于Column×Row。\n[0095] d)通过以下公式得到卡片控件的结束位置:\n[0096] CenterX=R×MaxWidth;\n[0097] CenterY=C×MaxWidth。\n[0098] 这里需要指出的是:得到卡片控件的结束位置进一步还可以采用以下方式:\n[0099] 为了加强卡片控件随机飞入的效果,可以事先设置排列表格的整体偏移量OffsetX和OffsetY。OffsetX和OffsetY都是0-MaxWidth间的Double型随机数此时,卡片控件的结束位置进一步通过以下公式获得:\n[0100] CenterX=R×MaxWidth+OffsetX;\n[0101] CenterY=C×MaxWidth+OffsetY。\n[0102] 以下以一个完整实施例对本发明进行举例阐述。\n[0103] 方法实施例:\n[0104] 如图4所示为本发明一最优实施例的实现流程示意图,该最优实施例是将卡片控件的随机位置飞入模式和保证卡片控件间不重叠相结合的例子。图4所示的流程包括以下步骤:\n[0105] 步骤101、设置所有卡片控件的动画飞入模式。\n[0106] 步骤102、计算卡片控件的最大宽度MaxWidth。\n[0107] 步骤103、生成二维数组LayoutTable[Row][Column]数据并初始化,计算排列表格的整体偏移量OffsetX和OffsetY。\n[0108] 步骤104、初始赋值i=0。\n[0109] 步骤105、判断i是否大于卡片控件的数量;如果是,则转入执行步骤113;否则,执行步骤106。\n[0110] 步骤106、判断卡片控件i是否采用最初预设的动画飞入模式;如果是,则执行步骤\n107;否则,转入执行步骤112。\n[0111] 这里,判断的依据是根据容器当前页数和每页卡片控件的数量进行判断。\n[0112] 步骤107、为实现卡片控件i的动画飞入模式,创建实现动画飞入模式的三个DoubleAnimation类的实例化类对象。\n[0113] 这里,三个实例化类对象包括如下内容:\n[0114] AngleDoubleAnimation:用于负责卡片控件Angle属性的动画控制;\n[0115] CenterXAngleDoubleAnimation:用于负责卡片控件CenterX属性的动画控制;\n[0116] CenterYAngleDoubleAnimation:用于负责卡片控件CenterY属性的动画控制。\n[0117] 这里,以下步骤108~步骤110是对三个类对象进行赋值的过程,本实施例赋值的过程中,是先对卡片控件的初始位置、初始角度、结束角度进行赋值,而后再对结束位置进行赋值,但是实际应用时并不受本实施例描述的限定,赋值的过程中,对于卡片控件的初始位置、初始角度、结束位置、结束角度的赋值可以随机进行,并未有必然的顺序关系,只要能实现对三个类对象的赋值操作都在本发明的保护范围之内。\n[0118] 步骤108、通过对以上三个类对象的赋值,设置卡片控件的初始位置、初始角度和结束角度。\n[0119] 步骤109、在对以上三个类对象的赋值中,设置三个类对象中的Targe属性为:卡片控件i;TargetProperty属性分别为:Angle、CenterX和CenterY;Duration属性为:Duration=0.5s;Decelaration属性为:Decelaration=0.9s。\n[0120] 步骤110、获得卡片控件的有效R和C,计算并设置卡片控件的结束位置。\n[0121] 这里,用到了坐标变换,将基于容器的坐标系转换成基于排列表格的坐标系,目的是为了避免卡片在随机位置飞入模式结束时会出现互相重叠的问题。该结束位置计算方式包括以下内容:\n[0122] CenterX=R×MaxWidth+OffsetX;\n[0123] CenterY=C×MaxWidth+OffsetY。\n[0124] 步骤111、赋值结束后,将已经赋值的三个类对象加入动画队列。\n[0125] 步骤112、i=i+1。\n[0126] 步骤113、从动画队列中获取对应卡片控件i的三个类对象,按照赋值的结果播放动画队列中由三个类对象所指向的卡片控件i。\n[0127] 一种控制客户端用户显示模式的系统,该系统包括控制单元,控制单元用于在创建动画类的实例化类对象,将创建的实例化类对象加入一个动画队列的情况下,由动画队列以时间为序列,对创建的实例化类对象及动画类属性进行刷新获得卡片控件运行的轨迹点,根据获得的轨迹点控制客户端用户显示模式的动态展现。\n[0128] 这里,控制单元进一步包括创建模块和播放模块;其中,创建模块用于创建三个实例化类对象;三个实例化类对象分别控制卡片控件的Angle、卡片控件的CenterX和卡片控件的CenterY。播放模块用于对三个实例化类对象中的各个动画类属性赋值后,将三个实例化类对象加入动画队列;播放动画队列中由三个实例化类对象所对应指向的卡片控件。\n[0129] 这里,控制单元进一步还包括判断模块,判断模块用于根据容器当前页数和每页卡片控件的数量判断是否对卡片控件采用预设的卡片控件的动画飞入模式;其中,卡片控件置于容器中。\n[0130] 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
法律信息
- 2016-06-22
- 2013-04-24
实质审查的生效
IPC(主分类): G06T 13/00
专利申请号: 201010228014.0
申请日: 2010.07.07
- 2012-01-11
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |