发明内容
本发明的主要目的在于提供一种智能电视的焦点控制方法、智能电视及计算机可读存储介质,旨在解决现有技术中由于在控件得到焦点或者失去焦点时,是瞬时的、跳跃性的,焦点控制不佳,人机交互不流畅的问题。
为实现上述目的,本发明提供的一种智能电视的焦点控制方法,包括:
响应监听到的焦点切换指令,获取当前焦点所在的初始控件和待取得焦点的目标控件的状态信息;
根据所述初始控件和所述目标控件的状态信息,计算焦点的尺寸变化量和移动距离;
监听所述初始控件和所述目标控件之间的焦点移动动画的进度,并根据所述焦点移动动画的进度百分比、所述尺寸变化量和所述移动距离,调整焦点在移动过程中的尺寸和位移量。
优选地,所述状态信息包括可见视图宽高、需要隐藏的视图宽高以及待展示的视图宽高;所述尺寸变化量包括宽度变化量和高度变化量,所述宽度变化量为所述目标控件的可见视图宽度与所述目标控件的待展示的视图宽度之和减去所述初始控件的可见视图宽度,所述高度变化量为所述目标控件的可见视图高度与所述目标控件的待展示的视图高度之和减去所述初始控件的可见视图高度。
优选地,所述初始控件的实际宽度为所述初始控件的可见视图宽度与所述初始控件的待展示的视图宽度之和,所述初始控件的实际高度为所述初始控件的可见视图高度与所述初始控件的待展示的视图高度之和;所述目标控件的实际宽度为所述目标控件的可见视图宽度与所述目标控件的待展示的视图宽度之和,所述目标控件的实际高度为所述目标控件的可见视图高度与所述目标控件的待展示的视图高度之和。
优选地,所述计算焦点的移动距离的步骤包括:
计算焦点的移动宽度和移动高度,其中,所述移动宽度为所述初始控件的可见视图宽度减去所述初始控件的需要隐藏的视图宽度,所述移动高度为所述初始控件的可见视图高度减去所述初始控件的需要隐藏的视图高度;
根据所述焦点移动动画、所述移动宽度和所述移动高度,计算焦点的移动距离。
优选地,所述根据所述焦点移动动画的进度百分比、所述尺寸变化量和所述移动距离,调整焦点在移动过程中的尺寸和位移量的步骤包括:
按照所述尺寸变化量乘以所述焦点移动动画的进度百分比调整焦点在移动过程中的尺寸;
将焦点在移动过程的位移量调整为所述移动距离乘以所述焦点移动动画的进度百分比。
优选地,所述响应监听到的焦点切换指令,获取当前焦点所在的初始控件和待取得焦点的目标控件的状态信息的步骤之前还包括:
将可获得焦点的控件的位置属性设定为具有相同的焦点移动动画的控件集合的最顶层。
优选地,所述焦点切换指令包括用户对方向键进行操作所触发的方向指令。
优选地,所述智能电视的焦点控制方法还包括:
设定左、上方向键触发的方向指令对应的焦点的移动位移为负值;
设定右、下方向键触发的方向指令对应的焦点的移动位移为正值。
为实现上述目的,本发明提供的一种智能电视,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的智能电视的焦点控制方法的步骤。
为实现上述目的,本发明提供的计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的智能电视的焦点控制方法的步骤。
本发明提出的技术方案中,根据初始控件和目标控件的状态信息来计算焦点的尺寸变化量和移动距离,控制焦点根据移动动画的进度自适应变化尺寸以及按照相应的轨迹移动,同时联动焦点以及初始控件、目标控件的动画,从而极大的提高了焦点变化过程中的焦点及控件的动画效果,有效的改善了焦点控制、人机交互的体验等问题。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
请参照图1,图1为本发明第一实施例提出的智能电视的焦点控制方法。在该实施例中,所述智能电视的焦点控制方法包括:
步骤S100,响应监听到的焦点切换指令,获取当前焦点所在的初始控件和待取得焦点的目标控件的状态信息。
具体地,注册焦点变化监听事件OnGlobalFocusChangeListener,当监听到焦点切换指令时,获取初始控件和目标控件。该初始控件为当前焦点所在的控件;该目标控件为根据该焦点切换指令,焦点即将移动到的控件。需要说明的是,可以预先设定可以获取焦点的控件的位置属性,比如可以获取焦点的控件构成一个集合,焦点在该集合中的控件中移动,从而便于控制焦点移动到目标控件的位置。
可以理解,在焦点移动过程中,可能会出现初始控件和目标控件所显示视图的变化,比如,当目标控件为APP图标时,APP图标获得焦点后,会相应展开推荐项目,此时,目标控件的大小变为APP图标和推荐项目。如果不考虑焦点移动过程中初始控件和目标控件的尺寸变化所产生的偏移量,将会导致焦点移动结束后,焦点与控件没有完全吻合,从而影响人机交互的体验。
因此,本实施例中,获得焦点移动的初始控件和目标控件后,进一步获取初始控件和目标控件的状态信息,该状态信息包括可见视图宽高、需要隐藏的视图宽高以及待展示的视图宽高。初始控件的实际宽度为初始控件的可见视图宽度与初始控件的待展示的视图宽度之和,初始控件的实际高度为初始控件的可见视图高度与初始控件的待展示的视图高度之和;目标控件的实际宽度为目标控件的可见视图宽度与目标控件的待展示的视图宽度之和,目标控件的实际高度为目标控件的可见视图高度与目标控件的待展示的视图高度之和。
步骤S200,根据所述初始控件和所述目标控件的状态信息,计算焦点的尺寸变化量和移动距离。
具体地,所述尺寸变化量包括宽度变化量和高度变化量,所述宽度变化量为所述目标控件的可见视图宽度与所述目标控件的待展示的视图宽度之和减去所述初始控件的可见视图宽度,所述高度变化量为所述目标控件的可见视图高度与所述目标控件的待展示的视图高度之和减去所述初始控件的可见视图高度。所述移动距离可以是初始控件和目标控件之间根据预先设定的移动轨迹对应的移动距离,也可以是根据初始控件和目标控件的实际显示所计算获得的。
步骤S300,监听所述初始控件和所述目标控件之间的焦点移动动画的进度,并根据所述焦点移动动画的进度百分比、所述尺寸变化量和所述移动距离,调整焦点在移动过程中的尺寸和位移量。
具体地,焦点在初始控件和目标控件之间按照预设的移动轨迹进行移动,该移动轨迹生成安卓系统属性动画。启动animation动画,并添加动画进度监听事件AnimatorUpdateListener,在其回调函数onAnimationUpdate里根据动画进度百分比,设置目标控件、初始控件和焦点的大小按照进度百分比进行变化,设置焦点的位移量也按照进度百分比进行变化,比如设置目标控件及初始控件的大小乘以动画进度的百分比,及焦点的位移量乘以动画进度的百分比,即,在焦点移动过程中,目标控件、初始控件和焦点的大小保持同一速度的自适应变化,当焦点移动到位时,目标控件、初始控件和焦点的大小也变化到位,从而实现焦点在初始控件和目标控件之间的平滑过渡。
本发明提出的技术方案中,根据初始控件和目标控件的状态信息来计算焦点的尺寸变化量和移动距离,控制焦点根据移动动画的进度自适应变化尺寸以及按照相应的轨迹移动,同时联动焦点以及初始控件、目标控件的动画,从而极大的提高了焦点变化过程中的焦点及控件的动画效果,有效的改善了焦点控制、人机交互的体验等问题。
请参照图2,为本发明智能电视的焦点控制方法的第二实施例,基于本发明智能电视的焦点控制方法的第一实施例,所述计算焦点的移动距离的步骤包括:
步骤S201,计算焦点的移动宽度和移动高度,其中,所述移动宽度为所述初始控件的可见视图宽度减去所述初始控件的需要隐藏的视图宽度,所述移动高度为所述初始控件的可见视图高度减去所述初始控件的需要隐藏的视图高度;
步骤S202,根据所述焦点移动动画、所述移动宽度和所述移动高度,计算焦点的移动距离。
比如,目标控件位于初始控件的正右下角,计算获得移动宽度为3个单位,移动高度为4个单位,焦点移动动画为直线,那么焦点的移动距离为5个单位。
本实施例中,通过根据初始控件和目标控件的状态信息以及初始控件和目标控件之间的焦点移动动画计算获得移动距离,从而便于后续焦点大小变化和移动距离按照进度百分比同时变化。
请参照图3,为本发明智能电视的焦点控制方法的第三实施例,基于本发明智能电视的焦点控制方法的第一或第二实施例,所述根据所述焦点移动动画的进度百分比、所述尺寸变化量和所述移动距离,调整焦点在移动过程中的尺寸和位移量的步骤包括:
步骤S301,按照所述尺寸变化量乘以所述焦点移动动画的进度百分比调整焦点在移动过程中的尺寸;
步骤S302,将焦点在移动过程的位移量调整为所述移动距离乘以所述焦点移动动画的进度百分比。
具体地,尺寸变化量为10个单位,移动距离为10个单位,那么移动动画的进度百分比为10%时,焦点尺寸变化1个单位,焦点移动1个单位,也即位移量为1个单位。需要说明的是,在这个过程中,初始控件和目标控件的大小若有变化,也是按照进度百分比,与焦点的移动和大小变化进行同时变化,也即焦点移动过程中初始控件、目标控件和焦点的大小以及位移量均按照进度百分比变化,当焦点移动到目标控件时,控件和焦点的大小变化同时到位,从而实现焦点、初始控件和目标控件的动画的联动。
请参照图4,为本发明智能电视的焦点控制方法的第四实施例,基于本发明智能电视的焦点控制方法的第一至第三任一实施例,所述步骤S100,响应监听到的焦点切换指令,获取当前焦点所在的初始控件和待取得焦点的目标控件的状态信息的步骤之前还包括:
步骤S400,将可获得焦点的控件的位置属性设定为具有相同的焦点移动动画的控件集合的最顶层。
具体地,用户通过操控遥控器来对焦点进行控制,当对方向键进行操作时,焦点将朝对应的方向移动,如果位于该方向的控件数量不止一个时,焦点将按照预先设定的规则进行移动,为了便于指定焦点移动到目标控件的位置,将具有相同的焦点移动动画的控件构成一个集合,并将可获得焦点的控件的位置属性设置为该集合的最顶层,那么在移动焦点时,焦点将会在该集合中的控件之间进行跳转。
进一步地,所述焦点切换指令包括用户对方向键进行操作所触发的方向指令。具体地,移动位移的正负由方向键决定,设定左、上键为负;右、下键为正。比如用户对方向键进行操作后,目标控件即为方向键所对应方向的位于上述控件集合中的控件。
本实施例通过设定可获得焦点的控件的位置属性,可以快速获取目标控件的位置,焦点控制准确,人机交互流畅。
本发明还提供一种智能电视,请参照图5,在一实施例中,该智能电视包括存储器100、处理器200及存储在存储器100上并可在处理器200上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例中的智能电视的焦点控制方法的步骤。
具体地,所述处理器执行所述计算机程序时用于实现如下步骤:
步骤S100,响应监听到的焦点切换指令,获取当前焦点所在的初始控件和待取得焦点的目标控件的状态信息;
步骤S200,根据所述初始控件和所述目标控件的状态信息,计算焦点的尺寸变化量和移动距离;
步骤S300,监听所述初始控件和所述目标控件之间的焦点移动动画的进度,并根据所述焦点移动动画的进度百分比、所述尺寸变化量和所述移动距离,调整焦点在移动过程中的尺寸和位移量。
本发明中的智能电视根据初始控件和目标控件的状态信息来计算焦点的尺寸变化量和移动距离,控制焦点根据移动动画的进度自适应变化尺寸以及按照相应的轨迹移动,同时联动焦点以及初始控件、目标控件的动画,从而极大的提高了焦点变化过程中的焦点及控件的动画效果,有效的改善了焦点控制、人机交互的体验等问题。
进一步地,所述状态信息包括可见视图宽高、需要隐藏的视图宽高以及待展示的视图宽高;
所述尺寸变化量包括宽度变化量和高度变化量,所述宽度变化量为所述目标控件的可见视图宽度与所述目标控件的待展示的视图宽度之和减去所述初始控件的可见视图宽度,所述高度变化量为所述目标控件的可见视图高度与所述目标控件的待展示的视图高度之和减去所述初始控件的可见视图高度。
进一步地,所述初始控件的实际宽度为所述初始控件的可见视图宽度与所述初始控件的待展示的视图宽度之和,所述初始控件的实际高度为所述初始控件的可见视图高度与所述初始控件的待展示的视图高度之和;所述目标控件的实际宽度为所述目标控件的可见视图宽度与所述目标控件的待展示的视图宽度之和,所述目标控件的实际高度为所述目标控件的可见视图高度与所述目标控件的待展示的视图高度之和。
进一步地,所述处理器在执行所述计算机程序时,所述计算焦点的移动距离的步骤包括:
步骤S201,计算焦点的移动宽度和移动高度,其中,所述移动宽度为所述初始控件的可见视图宽度减去所述初始控件的需要隐藏的视图宽度,所述移动高度为所述初始控件的可见视图高度减去所述初始控件的需要隐藏的视图高度;
步骤S202,根据所述焦点移动动画、所述移动宽度和所述移动高度,计算焦点的移动距离。
进一步地,所述处理器在执行所述计算机程序时,所述根据所述焦点移动动画的进度百分比、所述尺寸变化量和所述移动距离,调整焦点在移动过程中的尺寸和位移量的步骤包括:
步骤S301,按照所述尺寸变化量乘以所述焦点移动动画的进度百分比调整焦点在移动过程中的尺寸;
步骤S302,将焦点在移动过程的位移量调整为所述移动距离乘以所述焦点移动动画的进度百分比。
进一步地,所述处理器在执行所述计算机程序时,所述步骤S100,响应监听到的焦点切换指令,获取当前焦点所在的初始控件和待取得焦点的目标控件的状态信息的步骤之前还包括:
步骤S400,将可获得焦点的控件的位置属性设定为具有相同的焦点移动动画的控件集合的最顶层。
具体地,用户通过操控遥控器来对焦点进行控制,当对方向键进行操作时,焦点将朝对应的方向移动,如果位于该方向的控件数量不止一个时,焦点将按照预先设定的规则进行移动,为了便于指定焦点移动到目标控件的位置,将具有相同的焦点移动动画的控件构成一个集合,并将可获得焦点的控件的位置属性设置为该集合的最顶层,那么在移动焦点时,焦点将会在该集合中的控件之间进行跳转。
进一步地,所述焦点切换指令包括用户对方向键进行操作所触发的方向指令。
进一步地,所述智能电视的焦点控制方法还包括:
设定左、上方向键触发的方向指令对应的焦点的移动位移为负值;
设定右、下方向键触发的方向指令对应的焦点的移动位移为正值。
本实施例通过设定可获得焦点的控件的位置属性,可以快速获取目标控件的位置,焦点控制准确,人机交互流畅。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例中的智能电视的焦点控制方法的步骤。
在本说明书的描述中,参考术语“一实施例”、“另一实施例”、“其他实施例”、或“第一实施例~第X实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料、方法步骤或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。