一种在视图中添加角标的系统和方法
技术领域
本发明涉及一种在视图中添加角标的系统和方法,尤其是指一种在安卓平台的开发过程中,使得在视图中添加角标的操作得到优化的系统和方法。
背景技术
在智能移动终端设备中,最早出现并应用角标作为提示作用的是苹果公司开发的IOS系统,其用于显示有多少个未接电话,多少条未读短信,以及在应用商城中有多少个可更新的应用软件等等,典型的显示方式是在各种应用软件的图标视图右上角生成一个角标,该角标具有红色背景,且在红色背景中显示相应的提示数字。
随着移动终端设备的操作系统的不断发展和更新,如今各类移动操作系统的应用都有生成角标的需求。在应用程序的图标视图中,一般是右上角(当然也可以再左上角、左下角或右下角)处生成一个红色圆形的背景小球,在该背景小球中显示提示数字或是“热门”标注进行描述。由于生成角标的方式能非常明显的提供移动终端用户的直观感受和体验,也能有效增加相关应用程序被点击的次数,从而产生运营点,增加收入。因此现有技术中已经存在非常多的应用程序会采用生成角标的方式。
目前,在移动终端设备的安卓系统中基本均是通过布局文件来实现角标的功能。但存在的问题是,布局过程极为麻烦,经常性的需要调试N多次,而且需要编写hard-code(编写硬编码)来微调像素,这样又会导致各种分辨率相互适配的问题产生。同样的,在一个应用程序中,可能有多处地方需要生成角标,而每种场景下角标的显示方式又不一样,就又需要重复coding(编码)。因为,为了一个简单功能的实现,实现起来所付出的过程太繁琐,大有事倍功半的感觉。
基于上述,本发明提供一种能够在视图中添加角标的系统和方法,整个过程相比现有技术大为优化和简化,是对生成角标这个功能的一个封装。
发明内容
本发明的目的在于提供一种在视图中添加角标的系统和方法,适用于多种场景,简化了现有技术中角标实现过程中的重复性和复杂性,加快了开发进度并减少了开发人员的工作量,并且增强了可维护性和可阅读性。
为了达到上述目的,本发明提供一种在视图中添加角标的系统,其包含:原目标视图定位单元,用于在背景视图中定位原目标视图的位置和大小;角标设置单元,其与所述的原目标视图定位单元相连接,用于设置角标的大小、确定角标相对于原目标视图的设置方位以及确定角标中心点的位置;新目标视图设置单元,其与所述的原目标视图定位单元以及角标设置单元相连接,根据所确定的角标中心点的位置,在背景视图中定位包含原目标视图和角标的新目标视图的位置和大小;角标创建单元,其与所述的角标设置单元以及新目标视图设置单元相连接,根据所设置的角标大小以及角标中心点的位置,在新目标视图中创建角标,并显示角标内的提示字符。
所述的角标设置单元包含:角标大小设置单元,根据默认的设置或者自定义的输入,计算角标的大小;角标位置设置单元,根据默认的设置或者自定义的输入,判断角标相对于原目标视图的设置方位;角标中心点计算单元,其分别与所述的原目标视图定位单元、角标大小设置单元和角标位置设置单元相连接,根据原目标视图的位置大小,角标的位置大小,确定角标中心点的位置。
所述的角标位置设置单元判断得到角标可位于原目标视图右上角,或左上角,或左下角,或右下角。
所述的新目标视图设置单元包含:新目标视图定位单元,其分别与所述的原目标视图定位单元、角标大小设置单元和角标中心点计算单元相连接,根据原目标视图的位置大小,角标的大小以及角标中心点的位置,确定包含了原目标视图和角标的新目标视图在背景视图中的位置和大小;新目标视图创建单元,其与所述的新目标视图定位单元相连接,在背景视图中创建作为子视图的新目标视图,并将原目标视图从背景视图中提取出来合并加入至新目标视图中。
所述的角标创建单元包含:角标显示单元,其分别与所述的角标大小设置单元、角标中心点计算单元和新目标视图创建单元相连接,根据角标大小以及角标中心点的位置,在新目标视图中创建作为子视图的角标,并且该创建的角标作为原目标视图的上一层视图;角标字符单元,其与所述的角标视图显示单元相连接,用于在角标中显示起到提示作用的字符。
本发明还提供一种在视图中添加角标的方法,具体包含以下步骤:
S1、利用原目标视图定位单元在背景视图中定位原目标视图的位置和大小;
S2、利用角标设置单元设置角标的大小、确定角标相对于原目标视图的设置方位以及确定角标中心点的位置;
S3、根据所确定的角标中心点的位置,利用新目标视图设置单元在背景视图中定位包含原目标视图和角标的新目标视图的位置和大小;
S4、根据所设置的角标大小以及角标中心点的位置,利用角标创建单元在新目标视图中创建角标,并显示角标内的提示字符;
S5、输出新目标视图至移动终端设备的显示屏上。
所述的S2中,具体包含以下步骤:
S21、根据默认的设置或者自定义的输入,利用角标大小设置单元计算角标的大小;
S22、根据默认的设置或者自定义的输入,利用角标位置设置单元判断角标相对于原目标视图的设置方位;
S23、根据原目标视图的位置大小以及角标的位置大小,利用角标中心点计算单元确定角标中心点的位置。
所述的S22中,角标位置设置单元判断得到角标可位于原目标视图右上角,或左上角,或左下角,或右下角。
所述的S3中,具体包含以下步骤:
S31、根据原目标视图的位置大小,角标的大小以及角标中心点的位置,利用新目标视图定位单元确定包含了原目标视图和角标的新目标视图在背景视图中的位置和大小;
S32、利用新目标视图创建单元在背景视图中创建作为子视图的新目标视图,并将原目标视图从背景视图中提取出来合并加入至新目标视图中。
所述的S4中,具体包含以下步骤:
S41、根据角标大小以及角标中心点的位置,利用角标显示单元在新目标视图中创建作为子视图的角标,并且该创建的角标作为原目标视图的上一层视图;
S42、利用角标字符单元在角标中显示起到提示作用的字符。
本发明所提供的在视图中添加角标的系统和方法,适用于多种场景,简化了现有技术中针对每种场景编写一种角标实现的编码,以及多分辨率适配时或者更换角标风格时的枯燥的重复劳动,加快了开发进度并减少了开发人员的工作量,并且增强了可维护性和可阅读性。
附图说明
图1为本发明中的在视图中添加角标的系统的结构示意图;
图2为本发明中的原目标视图和背景视图之间的位置关系示意图;
图3为本发明中的角标位于原目标视图右上角时的位置关系示意图;
图4为本发明中的角标位于原目标视图右下角时的位置关系示意图;
图5为本发明中的角标位于原目标视图左上角时的位置关系示意图;
图6为本发明中的角标位于原目标视图左下角时的位置关系示意图;
图7为本发明中的在视图中添加角标的方法流程图;
图8为本发明中的设置角标大小和位置的方法流程图;
图9为本发明中的新目标视图创建方法的流程图;
图10为本发明中的角标创建方法的流程图。
具体实施方式
以下结合图1~图10,通过详细说明一个较佳的具体实施例,对本发明做进一步阐述。
如图1所示,为本发明所提供的在视图中添加角标的系统,其包含:原目标视图定位单元1,用于在背景视图中定位原目标视图的位置和大小;角标设置单元2,其与所述的原目标视图定位单元1相连接,用于设置角标的大小、确定角标相对于原目标视图的设置方位以及确定角标中心点的位置;新目标视图设置单元3,其与所述的原目标视图定位单元1以及角标设置单元2相连接,根据所确定的角标中心点的位置,在背景视图中定位包含原目标视图和角标的新目标视图的位置和大小;角标创建单元4,其与所述的角标设置单元2以及新目标视图设置单元3相连接,根据所设置的角标大小以及角标中心点的位置,在新目标视图中创建角标,并显示角标内的提示字符。
所述的角标设置单元2包含:角标大小设置单元21,根据默认的设置或者自定义的输入,计算角标的大小;角标位置设置单元22,根据默认的设置或者自定义的输入,判断角标相对于原目标视图的设置方位;角标中心点计算单元23,其分别与所述的原目标视图定位单元1、角标大小设置单元21和角标位置设置单元22相连接,根据原目标视图的位置大小,角标的位置大小,确定角标中心点的位置。
所述的角标位置设置单元22判断得到角标可位于原目标视图右上角,或左上角,或左下角,或右下角。
所述的新目标视图设置单元3包含:新目标视图定位单元31,其分别与所述的原目标视图定位单元1、角标大小设置单元21和角标中心点计算单元23相连接,根据原目标视图的位置大小,角标的大小以及角标中心点的位置,确定包含了原目标视图和角标的新目标视图在背景视图中的位置和大小;新目标视图创建单元32,其与所述的新目标视图定位单元31相连接,在背景视图中创建作为子视图的新目标视图,并将原目标视图从背景视图中提取出来合并加入至新目标视图中。
所述的角标创建单元4包含:角标显示单元41,其分别与所述的角标大小设置单元21、角标中心点计算单元23和新目标视图创建单元32相连接,根据角标大小以及角标中心点的位置,在新目标视图中创建作为子视图的角标,并且该创建的角标作为原目标视图的上一层视图;角标字符单元42,其与所述的角标视图显示单元41相连接,用于在角标中显示起到提示作用的字符。
如图7所示,本发明还提供一种在视图中添加角标的方法,具体包含以下步骤:
S1、利用原目标视图定位单元1在背景视图中定位原目标视图的位置和大小;
S2、利用角标设置单元2设置角标的大小、确定角标相对于原目标视图的设置方位以及确定角标中心点的位置;
S3、根据所确定的角标中心点的位置,利用新目标视图设置单元3在背景视图中定位包含原目标视图和角标的新目标视图的位置和大小;
S4、根据所设置的角标大小以及角标中心点的位置,利用角标创建单元4在新目标视图中创建角标,并显示角标内的提示字符;
S5、输出新目标视图至移动终端设备的显示屏上。
如图8所示,所述的S2中,具体包含以下步骤:
S21、根据默认的设置或者自定义的输入,利用角标大小设置单元21计算角标的大小;
S22、根据默认的设置或者自定义的输入,利用角标位置设置单元22判断角标相对于原目标视图的设置方位;
S23、根据原目标视图的位置大小以及角标的位置大小,利用角标中心点计算单元23确定角标中心点的位置。
所述的S22中,角标位置设置单元22判断得到角标可位于原目标视图右上角,或左上角,或左下角,或右下角。
如图9所示,所述的S3中,具体包含以下步骤:
S31、根据原目标视图的位置大小,角标的大小以及角标中心点的位置,利用新目标视图定位单元31确定包含了原目标视图和角标的新目标视图在背景视图中的位置和大小;
S32、利用新目标视图创建单元32在背景视图中创建作为子视图的新目标视图,并将原目标视图从背景视图中提取出来合并加入至新目标视图中。
如图10所示,所述的S4中,具体包含以下步骤:
S41、根据角标大小以及角标中心点的位置,利用角标显示单元41在新目标视图中创建作为子视图的角标,并且该创建的角标作为原目标视图的上一层视图;
S42、利用角标字符单元42在角标中显示起到提示作用的字符。
在本发明的一个优选实施例中,如图2所示,以背景视图的左上角为坐标原点(0,0),向右延伸作为X轴,向下延伸作为y轴,从而建立视图坐标系;由此原目标视图定位单元1即可确定原目标视图在背景视图中的位置和大小为TargetRect(x1, y1, w1, h1),其中(x1, y1)为原目标视图的左上角的坐标,w1为原目标视图的宽度,h1为原目标视图的高度。
如图3所示,当角标位置设置单元22判断得到角标位于原目标视图的右上角时,角标的中心点与原目标视图的右上角重叠,这是目前实际应用中角标位置所使用的最多的一种情况。此时,角标大小设置单元21计算得到角标的大小为MarkSize(w2, h2),其中,w2为角标的宽度,h1为角标的高度;而角标中心点计算单元23则计算得到角标的中心点坐标为CenterPoint(x3=x1+w1, y3=y1),其中x3为角标中心点的横坐标,y3为角标中心点的纵坐标。并且,新目标视图定位单元31确定新目标视图在背景视图中的位置和大小为NewTargetRect(x4=x1,y4=y1-h2/2,w4=w1+w2/2,h4=h1+h2/2),其中,(x4, y4)为新目标视图的左上角的坐标,w4为新目标视图的宽度,h4为新目标视图的高度。
如图4所示,当角标位置设置单元22判断得到角标位于原目标视图的右下角时,角标的右下角与原目标视图的右下角重叠。此时,角标大小设置单元21计算得到角标的大小为MarkSize(w2, h2);而角标中心点计算单元23则计算得到角标的中心点坐标为CenterPoint(x3=x1+w1-w2/2, y3=y1+h1-h2/2)。并且,新目标视图定位单元31确定新目标视图在背景视图中的位置和大小与原目标视图完全重叠,即NewTargetRect=TargetRect。
如图5所示,当角标位置设置单元22判断得到角标位于原目标视图的左上角时,角标的左上角与原目标视图的左上角重叠。此时,角标大小设置单元21计算得到角标的大小为MarkSize(w2, h2);而角标中心点计算单元23则计算得到角标的中心点坐标为CenterPoint(x3=x1+w2/2, y3=y1+h2/2)。并且,新目标视图定位单元31确定新目标视图在背景视图中的位置和大小与原目标视图完全重叠,即NewTargetRect=TargetRect。
如图6所示,当角标位置设置单元22判断得到角标位于原目标视图的左下角时,角标的左下角与原目标视图的左下角重叠。此时,角标大小设置单元21计算得到角标的大小为MarkSize(w2, h2);而角标中心点计算单元23则计算得到角标的中心点坐标为CenterPoint(x3=x1+w2/2, y3 =y1+h1-h2/2)。并且,新目标视图定位单元31确定新目标视图在背景视图中的位置和大小与原目标视图完全重叠,即NewTargetRect=TargetRect。
综上所述,本发明所提供的在视图中添加角标的系统和方法,基本思路是在原目标视图外增加一个外部视图作为新目标视图,该新目标视图是根据原目标视图的大小位置和角标的大小位置而计算得到的。将新目标视图添加到原目标视图的背景视图下,同时将原目标视图从其背景视图中提取出来,作为新目标视图的子视图加入到新目标视图中。然后创建角标视图,也将其作为新目标视图的子视图添加到新目标视图中,最终输出新目标视图至移动终端设备的显示屏上,此时即可实现角标生成和显示的功能。
本发明所提供的在视图中添加角标的系统和方法,对角标功能进行封装,并且设置相应的目标视图和需要显示的字符,就能显示对应的角标,使其适用于多种场景,简化了现有技术中针对每种场景编写一种角标实现的编码,以及多分辨率适配时或者更换角标风格时的枯燥的重复劳动,加快了开发进度并减少了开发人员的工作量,并且增强了可维护性和可阅读性。因此,为了能够有效简化现有技术中实现角标功能的方法,需要通过外部调用最简单的接口以实现该功能,因此在实现过程中使用了一些约定,是基于约定大于配置的契约式思想而提出的。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。