一种应用于电子设备的焦点管理方法及电子设备与流程

文档序号:19737308发布日期:2020-01-18 04:40阅读:215来源:国知局
一种应用于电子设备的焦点管理方法及电子设备与流程

本申请涉及终端技术领域,尤其涉及一种应用于电子设备的焦点管理方法及电子设备。



背景技术:

随着智能电视的快速发展,应用于智能电视的应用程序(application,app)也越来越丰富。很多app可以在该智能电视的展示界面展示各种内容(比如,海报图片、卡片等)。在展示界面的多个展示内容中,有一个展示内容的显示效果与其他位置展示内容的显示效果不同,该展示内容称为焦点。比如,焦点可以突出显示对应展示内容的边框,以区别于其他展示内容。用户可以通过遥控器控制焦点移动,比如,通过按压遥控器的向上键使焦点上移,通过按压遥控器的向右键使焦点右移。app可以根据用户的按键操作移动焦点位置。

目前,大部分app展示界面的展示内容数量较少,位置固定,或者数量较多但展示样式单一。示例性的,如图1a所示,展示界面包括展示内容1、展示内容2、展示内容3、展示内容4、展示内容5和展示内容6,6个展示内容的位置是固定的。示例性的,如图1b,展示界面以九宫格样式展示9个展示内容,在每个位置的展示内容可以不固定。

这种布局较简单的展示界面的焦点管理方法比较简单。比如,基于android系统的app,可以采用android原生的焦点管理机制。android原生的焦点管理机制下,每个展示内容作为一个单元进行焦点管理,可以针对每个展示内容作为当前焦点时,定义其接收到用户的按键操作后,焦点移动的规则。

但是,有些app的展示界面的展示内容数量较多,并且展示形式多样。比如,华为应用市场的展示界面的展示内容数量较多,展示形式多样,在每个位置展示的展示内容也不固定。示例性的,如图2a和图2b所示,展示界面包括推荐类、精选类、热门类等展示内容。推荐类和热门类的展示内容是图片加标题的形式,精选类的展示内容是图片的形式。展示界面每次刷新后,展示内容的位置不固定。示例性的,app的展示界面由图2a所示界面刷新为图2b所示界面后,热门类展示内容移动到精选类展示内容之上,并且热门类展示内容的内容和排列顺序都发生了变化。

对于这种展示内容数量较多,布局较复杂的展示界面,上述简单的焦点管理方法并不适用。如果将每个展示内容作为一个单元进行管理,对于展示界面的展示内容多且位置不固定的情况,对系统内存的消耗较大;并且,如果要修改焦点移动规则,需要逐个单元进行修改,不利于维护和扩展。需要一种适用于展示内容数量较多,布局较复杂的展示界面的焦点管理方法。



技术实现要素:

本申请实施例提供一种应用于电子设备的焦点管理方法及电子设备,适用于展示内容数量较多,布局较复杂的展示界面,可以减小系统内存的消耗,并且便于维护和扩展。

第一方面,本申请实施例提供一种应用于电子设备的焦点管理方法,该电子设备的展示界面包括一个展示界面容器,展示界面容器包括一个或多个卡片容器,每个卡片容器包括一个或多个卡片。该焦点管理方法可以包括:以展示界面的展示界面容器作为一个单元,启动一个卡片容器选中监听,用于监听是否接收到卡片容器选中事件;监听接收到卡片容器选中事件后,根据卡片容器选中事件确定目标卡片容器;并根据焦点上下移动算法,在目标卡片容器中确定目标焦点。其中,卡片容器选中事件是基于当前焦点,根据向上键事件或向下键事件生成的。

在该方法中,以展示界面容器作为一个单元,启动监听。接收到向上键事件或向下键事件后,生成向上键事件或向下键事件对应的卡片容器选中事件。根据监听到的卡片容器选中事件,可以确定目标焦点所在的卡片容器,并进一步的,根据预设的焦点上下移动算法,在目标卡片容器中确定出目标焦点。由于只启动了一个监听,对系统内存的消耗较小,便于维护,也降低了内存泄露的风险。并且,采用统一的焦点上下移动算法,就可以统一管理焦点移动算法,灵活处理焦点移动算法,方便维护和扩展。

结合第一方面,在一种可能的设计方式中,在电子设备开机,显示展示界面之后,如果接收到按键事件,则将位于展示界面容器中预设位置的卡片确定为当前焦点。其中,该按键事件是基于用户对任意一个按键的操作生成的。比如,该预设位置的卡片可以是展示界面容器中第一个卡片容器的左边第一个卡片;比如,该预设位置的卡片可以是展示界面容器中最中间位置的卡片等。

这样,当电子设备开机,显示展示界面时,用户可以按压遥控器的任意一个按键来定位一个焦点。之后,就可以通过按压方向键来移动焦点。

结合第一方面,在一种可能的设计方式中,根据焦点上下移动算法,在目标卡片容器中确定目标焦点,包括:将目标卡片容器中与当前焦点的相邻面积最大的卡片确定为目标焦点。

结合第一方面,在一种可能的设计方式中,如果目标卡片容器中存在多个卡片与当前焦点的相邻面积相等,则根据预设规则将多个卡片中的一个卡片确定为目标焦点。

在一种可能的设计方式中,如果接收到的为向下键事件,则将多个卡片中最左边的卡片确定为目标焦点。如果接收到的为向上键事件,则将多个卡片中最右边的卡片确定为目标焦点。

结合第一方面,在一种可能的设计方式中,展示界面包括显示区域和未显示区域,如果目标卡片容器在未显示区域,或部分显示在显示区域,则向上或向下滚动展示界面的各个卡片容器,使目标卡片容器在显示区域完全展示。这样,就可以在显示区域的卡片容器中确定目标焦点。并且,将目标卡片容器展示在显示区域,用户可以看到目标焦点的显示效果,用户体验较好。

结合第一方面,在一种可能的设计方式中,在确定目标焦点之后,还可以调用焦点改变接口,通知目标焦点更新为当前焦点。相比每个卡片启动一个监听来获取焦点改变事件的方法,调用焦点改变接口来通知目标焦点更新为当前焦点,可以降低对系统内存的消耗。

结合第一方面,在一种可能的设计方式中,展示界面容器中的多个卡片容器排列成一列,每个卡片容器中的多个卡片排列成一行。

第二方面,本申请实施例提供一种应用于电子设备的焦点管理方法,该电子设备的展示界面包括一个展示界面容器,展示界面容器包括一个或多个卡片容器,每个卡片容器包括一个或多个卡片。该焦点管理方法可以包括:以展示界面容器作为一个单元,启动一个卡片选中监听,用于监听是否接收到卡片选中事件;接收到卡片选中事件后,根据焦点左右移动算法,确定目标焦点。其中,卡片选中事件是基于当前焦点,根据向左键事件或向右键事件生成的。

在该方法中,以展示界面容器作为一个单元,启动监听。接收到向左键事件或向右键事件后,生成向左键事件或向右键事件对应的卡片选中事件。根据监听到的卡片选中事件,和预设的焦点左右移动算法,确定出目标焦点。

以展示界面容器为单元启动一个监听,对系统内存的消耗较小,便于维护,也降低了内存泄露的风险。并且,采用统一的焦点左右移动算法,就可以统一管理焦点移动算法,灵活处理焦点移动算法,方便维护和扩展。

结合第二方面,在一种可能的设计方式中,根据焦点左右移动算法,确定目标焦点,包括:如果接收到向左键事件,将当前焦点在其所在卡片容器中左移一个位置的卡片确定为目标焦点;如果接收到向右键事件,将当前焦点在当前卡片容器中右移一个位置的卡片确定为目标焦点。

结合第二方面,在一种可能的设计方式中,在电子设备开机,显示展示界面之后,如果接收到按键事件,则将位于展示界面容器中预设位置的卡片确定为当前焦点。其中,该按键事件是基于用户对任意一个按键的操作生成的。比如,该预设位置的卡片可以是展示界面容器中第一个卡片容器的左边第一个卡片;比如,该预设位置的卡片可以是展示界面容器中最中间位置的卡片等。

这样,当电子设备开机,显示展示界面时,用户可以按压遥控器的任意一个按键来定位一个焦点。之后,就可以通过按压方向键来移动焦点。

结合第二方面,在一种可能的设计方式中,在确定目标焦点之后,还可以调用焦点改变接口,通知目标焦点更新为当前焦点。相比每个卡片启动一个监听来获取焦点改变事件的方法,调用焦点改变接口来通知目标焦点更新为当前焦点,可以降低对系统内存的消耗。

结合第二方面,在一种可能的设计方式中,展示界面容器中的多个卡片容器排列成一列,每个卡片容器中的多个卡片排列成一行。

第三方面,本申请实施例提供一种电子设备,该电子设备可以实现第一方面或第二方面所述的应用于电子设备的焦点管理方法,其可以通过软件、硬件、或者通过硬件执行相应的软件实现上述方法。在一种可能的设计中,该电子设备可以包括显示屏、处理器和存储器。该处理器被配置为支持该电子设备执行上述任一方面方法中相应的功能。存储器用于与处理器耦合,其保存该电子设备必要的程序指令和数据。

第四方面,本申请实施例提供一种计算机存储介质,该计算机存储介质包括计算机指令,当所述计算机指令在电子设备上运行时,使得电子设备执行如上述任一方面及其可能的设计方式所述的应用于电子设备的焦点管理方法。

第五方面,本申请实施例提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如上述任一方面及其可能的设计方式所述的应用于电子设备的焦点管理方法。

第三方面所述的电子设备,第四方面所述的计算机存储介质以及第五方面所述的计算机程序产品所带来的技术效果可参见上述第一方面及其不同设计方式所带来的技术效果,此处不再赘述。

附图说明

图1a为一种展示界面的实例示意图一;

图1b为一种展示界面的实例示意图二;

图2a为一种展示界面的实例示意图三;

图2b为一种展示界面的实例示意图四;

图3a为本申请实施例提供的一种电子设备的结构示意图一;

图3b为本申请实施例提供的一种遥控器的结构示意图;

图4a为本申请实施例提供的一种应用于电子设备的焦点管理方法所适用的一种展示界面示意图一;

图4b为本申请实施例提供的一种应用于电子设备的焦点管理方法所适用的一种展示界面示意图二;

图4c为本申请实施例提供的一种应用于电子设备的焦点管理方法所适用的一种展示界面示意图三;

图4d为本申请实施例提供的一种应用于电子设备的焦点管理方法所适用的一种展示界面示意图四;

图5为本申请实施例提供的一种应用于电子设备的焦点管理方法的流程示意图一;

图6为本申请实施例提供的一种应用于电子设备的焦点管理方法的流程示意图二;

图7a为本申请实施例提供的一种应用于电子设备的焦点管理方法的展示界面实例图一;

图7b为本申请实施例提供的一种应用于电子设备的焦点管理方法的展示界面实例图二;

图8a为本申请实施例提供的一种应用于电子设备的焦点管理方法示意图一;

图8b为本申请实施例提供的一种应用于电子设备的焦点管理方法示意图二;

图9为本申请实施例提供的一种应用于电子设备的焦点管理方法的流程示意图三;

图10为本申请实施例提供的一种应用于电子设备的焦点管理方法的流程示意图四;

图11为本申请实施例提供的一种应用于电子设备的焦点管理方法示意图三;

图12为本申请实施例提供的一种应用于电子设备的焦点管理方法的流程示意图五;

图13为本申请实施例提供的一种电子设备的结构示意图二。

具体实施方式

本申请实施例提供的应用于电子设备的焦点管理方法,可以应用于图3a所示的电子设备100。

该电子设备100可以为智能电视、智慧屏、高清电视、4k电视、智能投影等,本申请实施例对该电子设备100的具体形式不做特殊限制。

请参考图3a,其示出了本申请实施例提供的一种电子设备100的结构示意图。其中,电子设备100可以包括处理器110,存储器120,音频模块130,扬声器130a,显示屏140,无线通信模块150,接口模块160,电源模块170等。

可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以是硬件,软件或软件和硬件的组合实现。

上述各部件还可以分布于不同的电子设备上。比如,该电子设备100可以是机顶盒加显示器的形式。

处理器110可以包括一个或多个处理器,例如:处理器110可以包括应用处理器(applicationprocessor,ap),控制器,视频编解码器,和/或数字信号处理器(digitalsignalprocessor,dsp)等。其中,不同的处理器可以是独立的器件,也可以集成在一个或多个处理器中。

其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。

应用处理器上可以安装有电子设备100的操作系统,用于管理电子设备100的硬件与软件资源。比如,管理与配置内存、决定系统资源供需的优先次序、管理文件系统、管理驱动程序等。操作系统也可以用于提供一个让用户与系统交互的操作界面。其中,操作系统内可以安装各类软件,比如,驱动程序,应用程序(application,app)等。

数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。

视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放多种编码格式的视频。

存储器120,用于存储指令和数据。在一些实施例中,存储器120为高速缓冲存储器。该存储器可以保存处理器110使用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器120中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。

在一些实施例中,存储器120也可以设置于处理器110中,即处理器110包括存储器120。本申请实施例对此不进行限定。

音频模块130用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块130还可以用于对音频信号编码和解码。在一些实施例中,音频模块130可以设置于处理器110中,或将音频模块130的部分功能模块设置于处理器110中。

扬声器130a,也称“喇叭”,用于将音频电信号转换为声音信号。

电子设备100可以通过音频模块130,扬声器130a,以及应用处理器等实现音频功能。例如声音播放等。

显示屏140用于显示图像,视频等。显示屏140包括显示面板。显示面板可以采用液晶显示屏(liquidcrystaldisplay,lcd),有机发光二极管(organiclight-emittingdiode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganiclightemittingdiode的,amoled),柔性发光二极管(flexlight-emittingdiode,fled),miniled,microled,micro-oled,量子点发光二极管(quantumdotlightemittingdiodes,qled)等。本申请实施例中,显示屏140可以用于显示app的展示界面。

无线通信模块150可以提供应用在电子设备100上的包括无线局域网(wirelesslocalareanetworks,wlan)(如无线保真(wirelessfidelity,wi-fi)网络),蓝牙(bluetooth,bt),调频(frequencymodulation,fm),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块150可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块150经由天线接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。例如,无线通信模块150可以用于实现本申请实施例中电子设备100与遥控器的通信。电子设备100可以通过蓝牙、ir等无线通信方式接收遥控器的信号。

接口模块160可以包括usb接口、音频输出接口、高清多媒体接口(highdefinitionmultimediainterface,hdmi)、存储卡接口等。usb接口是符合usb标准规范的接口,具体可以是miniusb接口,microusb接口,usbtypec接口等。usb接口可以用于电子设备100与外围设备之间传输数据;比如,电子设备100可以通过usb接口连接外部存储设备,外接摄像头,游戏手柄等。设备音频输出接口用于连接外部音频设备,比如,可以用于连接音箱。hdmi是一种全数字化视频和声音发送接口,可以同时发送未压缩的音频及视频信号;比如,电子设备100可以通过hdmi接口连接有线机顶盒、网络机顶盒、电脑、音箱等设备。存储卡接口用于连接外部存储卡,例如microsd卡,实现扩展电子设备100的存储能力。

电源模块170,可以用于向电子设备100包含的各个部件供电。

通常,电子设备100会配有一遥控器。该遥控器用于控制电子设备100。如图3b,其示出了一种遥控器200的结构示意图。遥控器200可以包括多个按键,比如,向上键201,向下键202,向左键203,向右键204,确定键205,电源键206等。遥控器200上的按键可以是机械按键,也可以是触摸式按键。遥控器200可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入,并向电子设备100发送相应的信号,以控制电子设备100。比如,当用户按压向上键201,向下键202,向左键203,向右键204,确定键205或电源键206时,该按键可以发出对应的信号;并通过蓝牙、红外等方式向电子设备100发送信号。电子设备100通过无线通信模块150(比如,蓝牙、ir)接收到按键对应的信号,则可以根据该信号执行相应的操作。

在一种示例中,向上键201,向下键202,向左键203和向右键204为方向键,用于控制电子设备100中对象的移动方向;比如,电子设备100在app展示界面,接收到向上键201对应的信号,则将焦点向上移动;接收到向下键202对应的信号,则将焦点向下移动;接收到向左键203对应的信号,则将焦点向左移动;接收到向右键204对应的信号,则将焦点向右移动。确定键205用于确认用户的操作;比如,用户可以通过按压确定键205确定选中一个对象;当焦点位于一个展示内容时,电子设备100接收到确定键205对应的信号,则确定选中该展示内容。电源键206用于控制电子设备100的电源;比如,电子设备100接收到电源键206对应的信号,则关闭电源。

可以理解的,遥控器200还可以包括其他按键和部件,比如音量键、蓝牙接口、红外接口、电池收纳腔(用于安装电池,为遥控器供电)等。本申请实施例不再赘述。

需要说明的是,在一些实施例中,上述向上键201,向下键202,向左键203,向右键204,确定键205,电源键206等各个按键,也可以设置在电子设备100上。这些按键可以是机械按键,也可以是触摸式按键。电子设备100可以接收按键输入,产生与用户设置以及功能控制有关的键信号输入,以控制电子设备100。本申请实施例对于按键的位置并不进行限定。

本申请实施例以电子设备100为智能电视,智能电视接收用户对遥控器的按键的操作,以控制智能电视为例进行说明。

应用于智能电视的app的展示界面可以包括多个展示内容。在多个展示内容中,有一个展示内容为焦点。焦点的显示效果与其他展示内容的显示效果不同。比如,焦点可以突出显示对应展示内容的边框,以区别于其他展示内容。app可以接收遥控器上各个方向键对应的信号,根据用户对方向键的按压操作,移动焦点位置。可以理解的,本申请实施例中所述app的展示界面也可以是电子设备100的主界面(即桌面)。

在一些实施例中,每个展示内容作为一个单元。可以在app的布局文件中,针对每个展示内容设置其获取焦点能力。示例性的,获取焦点能力设置为true,表示该展示内容有获取焦点的能力,即该展示内容可以成为焦点;获取焦点能力设置为false,表示该展示内容没有获取焦点的能力,即该展示内容不能成为焦点。

在一种实现方式中,电子设备的操作系统以每个展示内容作为一个单元,进行焦点管理。比如,智能电视的操作系统为android系统。在确定接收到遥控器的方向键对应的信号时,android系统根据预设的落焦规则,确定目标焦点。并触发当前焦点的失去焦点事件,以及目标焦点的获取焦点事件。

每个有获取焦点能力的展示内容,对应启动一个焦点事件监听,用于监听是否接收到焦点改变事件(焦点改变事件包括失去焦点事件和获取焦点事件)。如果一个展示内容接收到失去焦点事件,则确定自身失去焦点;如果一个展示内容接收到获取焦点事件,则确定自身成为焦点。

在另一种实现方式中,每个有获取焦点能力的展示内容启动一个按键事件监听,用于监听是否接收到按键事件。按键事件可以包括向上键事件、向下键事件、向左键事件和向右键事件;系统接收到遥控器的向上键对应的信号,则触发向上键事件;接收到遥控器的向下键对应的信号,则触发向下键事件;接收到遥控器的向左键对应的信号,则触发向左键事件;接收到遥控器的向右键对应的信号,则触发向右键事件。每个展示内容接收按键事件后,当前焦点根据预设的落焦规则,确定目标焦点。其中,在该实现方式中预设的落焦规则,可以与android系统预设的落焦规则相同,也可以与android系统预设的落焦规则不同。

示例性的,预设的落焦规则可以包括:设定每个展示内容作为当前焦点时,接收到各个方向键对应的信号时,目标焦点的标识。比如,对于如图1a所示的app展示界面,预设的落焦规则为,在当前焦点为展示内容1时,接收到向右键对应的信号,则目标焦点的标识为展示内容4的标识;接收到向下键对应的信号,则目标焦点的标识为展示内容2的标识。在当前焦点为展示内容2时,接收到向右键对应的信号,则目标焦点的标识为展示内容3的标识。在当前焦点为展示内容3时,接收到向左键对应的信号,则目标焦点的标识为展示内容2的标识;接收到向右键对应的信号,则目标焦点的标识为展示内容5的标识;接收到向上键对应的信号,则目标焦点的标识为展示内容1的标识。在当前焦点为展示内容4时,接收到向左键对应的信号,则目标焦点的标识为展示内容1的标识;接收到向右键对应的信号,则目标焦点的标识为展示内容6的标识;接收到向下键对应的信号,则目标焦点的标识为展示内容5的标识。在当前焦点为展示内容5时,接收到向左键对应的信号,则目标焦点的标识为展示内容3的标识;接收到向右键对应的信号,则目标焦点的标识为展示内容6的标识;接收到向上键对应的信号,则目标焦点的标识为展示内容4的标识。在当前焦点为展示内容6时,接收到向左键对应的信号,则目标焦点的标识为展示内容4的标识。

示例性的,预设的落焦规则可以包括:对于各个展示内容的位置上下对齐的情况,接收到向上键对应的信号,焦点向上移动一个位置;接收到向下键对应的信号,焦点向下移动一个位置。对于各个展示内容的位置左右对齐的情况,接收到向左键对应的信号,焦点向左移动一个位置;接收到向右键对应的信号,焦点向右移动一个位置。比如,对于如图1b所示的app展示界面,在当前焦点为第二行第二列的展示内容时,接收到向上键对应的信号,则目标焦点为第一行第二列的展示内容;接收到向下键对应的信号,则目标焦点为第三行第二列的展示内容;接收到向左键对应的信号,则目标焦点为第二行第一列的展示内容;接收到向右键对应的信号,则目标焦点为第二行第三列的展示内容。

示例性的,预设的落焦规则可以包括:当前焦点下方对应多个展示内容时,接收到向下键对应的信号,焦点移动至下方多个展示内容中最左边的一个展示内容;当前焦点上方对应多个展示内容时,接收到向上键对应的信号,焦点移动至上方多个展示内容中最左边的一个展示内容;当前焦点左方对应多个展示内容时,接收到向左键对应的信号,焦点移动至左方多个展示内容中最上边的一个展示内容;当前焦点右方对应多个展示内容时,接收到向右键对应的信号,焦点移动至右方多个展示内容中最上边的一个展示内容等。比如,对于如图1a所示的app展示界面,当前焦点为展示内容1时,接收到向下键对应的信号,则目标焦点为展示内容2;当前焦点为展示内容6时,接收到向左键对应的信号,则目标焦点为展示内容4。

上述任一种实现方式中,需要针对每个有获取焦点能力的展示内容,对应启动一个监听(焦点事件监听或按键事件监听),每个监听都占用一定的系统内存。当app展示界面的展示内容数量较大时,监听占用的系统内存较大,造成对系统内存的大量消耗。并且,由于启动的监听数量较大,不便于管理和维护这些监听。在一些情况下,如果要改变落焦规则,需要针对每个展示内容做适应性修改,当app展示界面的展示内容数量较大时,适配的工作量较大,不便于维护和扩展。

本申请实施例提供一种应用于电子设备的焦点管理方法,以app展示界面的全部展示内容为一个单元,启动一个监听,这样可以减小对系统内存的消耗,并且便于管理和扩展。

为了方便说明,下面对本申请实施例提供的应用于电子设备的焦点管理方法适用的一种app展示界面进行介绍。请参考图4a,app展示界面可以包括多个展示内容(比如,华为音乐、华为视频、k歌等),还可以包括一个或多个标签(比如,推荐、精选、热门等)。其中,每个展示内容称为一个卡片。本申请实施例并不限定卡片的具体形式,比如,卡片可以是图片加标题的形式,也可以是图片的形式,还可以是其他形式。本申请实施例中每个卡片都有获取焦点的能力。

请参考图4b,app展示界面包括多个卡片。该多个卡片属于展示界面容器,即展示界面容器包括app展示界面的所有卡片。展示界面容器包括一个或多个卡片容器。每个卡片容器包括一个或多个卡片。示例性的,展示界面容器包括卡片容器1、卡片容器2和卡片容器3;卡片容器1包括卡片1、卡片2、卡片3和卡片4;卡片容器2包括卡片5、卡片6和卡片7;卡片容器3包括卡片8、卡片9、卡片10、卡片11和卡片12。在一些实施例中,多个卡片容器排列成一列。每个卡片容器中的卡片排列成一行。

在一些实施例中,app展示界面包括显示区域和未显示区域。

在一种示例中,一个卡片容器中还包括未展示的卡片。卡片可以左右滑动,即卡片的展示位置可以左右移动,使得未显示区域的卡片移动至显示区域进行展示。示例性的,卡片容器3还包括卡片13和卡片14,在图4b所示的app展示界面的显示区域未展示卡片13和卡片14。卡片容器3中的卡片向左滑动后,图4b所示的app展示界面可以更新为图4c所示的app展示界面,图4b中卡片8和卡片9移动至未显示区域,卡片13和卡片14移动至显示区域。本申请实施例中,可以在卡片容器中左右滑动的卡片称为横滑卡片。

在一种示例中,展示界面容器还包括未展示的卡片容器。卡片容器可以上下滚动,使得未显示区域的卡片容器滚动至显示区域。示例性的,展示界面容器还包括卡片容器4,在图4b所示的app展示界面的显示区域未展示卡片容器4。展示界面容器中的卡片容器向上滚动后,图4b所示的app展示界面可以更新为图4d所示的app展示界面,图4b中卡片容器1滚动至未显示区域,卡片容器4滚动至显示区域。

需要说明的是,标签没有获取焦点的能力,图4b、图4c和图4d中未体现标签。

下面结合附图对本申请实施例提供的应用于电子设备的焦点管理方法进行详细介绍。本申请实施例提供的应用于电子设备的焦点管理方法可以应用于图3a所示的电子设备100,安装在电子设备100上的app的展示界面包括如图4b、图4c或图4d所示的特征。安装在电子设备100上的app的展示界面包括一个展示界面容器,展示界面容器包括一个或多个卡片容器。每个卡片容器包括一个或多个卡片。其中,多个卡片容器排列成一列;每个卡片容器中的卡片排列成一行。

如图5所示,本申请实施例提供的应用于电子设备的焦点管理方法可以包括:

s501、在操作系统启动一个卡片容器选中监听。

以电子设备为智能电视为例。智能电视的应用处理器上安装有操作系统。示例性的,智能电视的操作系统可以是android。操作系统内安装有app,示例性的,安装在智能电视上的app的展示界面如图4b所示。

app展示界面包括一个展示界面容器。在操作系统内,以展示界面容器作为一个单元,注册并启动一个卡片容器选中监听,用于监听是否接收到卡片容器选中事件。

用户可以通过按压遥控器上的按键来控制智能电视。智能电视的操作系统可以接收遥控器(比如图3b中遥控器200)的按键对应的信号。操作系统接收到遥控器按键对应的信号,即接收到按键事件。比如,接收到向上键对应的信号,即接收到向上键事件;接收到向下键对应的信号,即接收到向下键事件;接收到向左键对应的信号,即接收到向左键事件;接收到向右键对应的信号,即接收到向右键事件;接收到确定键对应的信号,即接收到确定键事件;接收到电源键对应的信号,即接收到电源键事件。

操作系统接收到按键事件,可以触发相应的操作。

在一种示例中,智能电视开机,显示智能电视的app展示界面,此时不存在当前焦点。用户可以通过按压遥控器上的任意一个按键(比如,向上键、向下键、向左键、向右键、确定键、音量键等)来确定一个焦点。

示例性的,用户按压遥控器上的任意一个按键,则生成对应的控制信号,发送至智能电视。智能电视的操作系统接收到任意一个按键对应的信号,即接收到按键事件。

在一种实现方式中,操作系统接收到任意一个按键触发的按键事件,可以将展示界面容器中预设位置的卡片确定为焦点。比如,该预设位置可以是app展示界面的第一个卡片容器中的左边第一个卡片的位置(比如图4b中的卡片1的位置);比如,该预设位置可以是app展示界面上的中间位置(比如图4b中的卡片6的位置)。优选地,任意一个按键不包括电源按键。

可选的,在一种实现方式中,操作系统可以生成卡片容器选中事件;卡片容器选中事件用于指示目标焦点所在的卡片容器。示例性的,预设位置为第一个卡片容器中的左边第一个卡片的位置,则目标焦点所在的卡片容器为第一个卡片容器。

在一种示例中,智能电视的app展示界面存在当前焦点,即展示界面容器中存在一个卡片获取了焦点。用户可以通过按压遥控器上的向上键、向下键、向左键或向右键来控制移动焦点。

在一些实施例中,智能电视的操作系统接收到向上键事件或向下键事件,则基于当前焦点,生成卡片容器选中事件;卡片容器选中事件用于指示目标焦点所在的卡片容器。本申请实施例中,目标焦点所在的卡片容器称为目标卡片容器。

比如,接收到向下键事件,则确定目标卡片容器为当前焦点所在的卡片容器下一行的卡片容器;接收到向上键事件,则确定目标卡片容器为当前焦点所在的卡片容器上一行的卡片容器。示例性的,当前焦点为图4b所示app展示界面中卡片6,操作系统接收到向上键事件,则确定目标卡片容器为卡片容器1;操作系统接收到向下键事件,则确定目标卡片容器为卡片容器3。其中,当前焦点所在的卡片容器称为当前卡片容器。

操作系统可以通过生成的卡片容器选中事件指示目标卡片容器。在一种实现方式中,卡片容器选中事件携带卡片容器指示信息,卡片容器指示信息用于指示目标卡片容器;示例性的,卡片容器指示信息可以是卡片容器的标识。

s502、监听接收到卡片容器选中事件,确定目标焦点所在的卡片容器。

在一种实现方式中,监听接收到卡片容器选中事件,则根据卡片容器指示信息确定目标卡片容器。

示例性的,图4b中展示界面容器接收到卡片容器选中事件,根据卡片容器指示信息确定目标卡片容器为卡片容器3。

在一些实施例中,如果确定目标卡片容器在展示界面的未显示区域,或部分显示在展示界面的显示区域,则可以向上或向下滚动各个卡片容器,使目标卡片容器在显示区域完全展示。

可选的,展示界面可以包括多页,每一页分别包括一个或多个展示界面容器。可以一页一页的在展示界面展示该多个展示界面容器。在一种示例中,如图6所示,展示界面容器接收到卡片容器选中事件,确定目标卡片容器是否在展示界面的未显示区域,或部分显示在展示界面的显示区域。如果确定目标卡片容器在展示界面的未显示区域,或部分显示在展示界面的显示区域,判断目标卡片容器是否在展示界面的最后一页的最后一行。如果确定目标卡片容器在展示界面的最后一页的最后一行,则目标卡片容器向上滚动的距离为该卡片容器在展示界面未显示的高度加第一预设距离。如果确定目标卡片容器不在展示界面的最后一页的最后一行,则确定目标卡片容器是否靠近展示界面下边框。如果确定目标卡片容器靠近展示界面下边框,则确定目标卡片容器向上滚动,滚动距离为目标卡片容器在展示界面未显示的高度加第二预设距离;在一种示例中,第二预设距离大于第一预设距离。如果确定目标卡片容器不靠近展示界面下边框(即目标卡片容器靠近展示界面上边框),则确定目标卡片容器向下滚动,滚动距离为目标卡片容器在展示界面未显示的高度加第三预设距离。

以向上滚动为例。

示例性的,如图7a,当前焦点为卡片6,展示界面容器接收到卡片容器选中事件,确定目标卡片容器为卡片容器3。卡片容器3部分显示在展示界面的显示区域,则向上滚动卡片容器1、卡片容器2和卡片容器3,使卡片容器3在显示区域完全展示。

示例性的,如图7b,当前焦点为卡片6,展示界面容器接收到卡片容器选中事件,确定目标卡片容器为卡片容器3。卡片容器3在展示界面的未显示区域,则向上滚动卡片容器1、卡片容器2和卡片容器3,使卡片容器3在显示区域完全展示。

s503、根据焦点上下移动算法,在目标卡片容器中确定目标焦点。

焦点上下移动算法可以包括焦点下移算法和焦点上移算法。如果不存在当前焦点(比如智能电视开机,显示该app展示界面),则目标焦点为预设位置的卡片。如果目标卡片容器位于当前焦点下方,则根据焦点下移算法确定目标焦点;如果目标卡片容器位于当前焦点上方,则根据焦点上移算法确定目标焦点。

在一种实现方式中,可以在操作系统中记录当前焦点的左边坐标信息和右边坐标信息。左边坐标即卡片的左边框的横坐标,右边坐标即卡片的右边框的横坐标。示例性的,操作系统中focusxs数组用于记录当前焦点的左边坐标信息和右边坐标信息。

在一种示例中,焦点下移算法包括:

在展示界面的显示区域的目标卡片容器中,正序(从左到右)遍历每个卡片,将符合焦点下移规则的卡片确定为目标焦点。

焦点下移规则为,目标卡片容器的多个卡片中,与当前焦点的相邻面积最大的卡片为目标焦点;如果存在多个卡片与当前焦点的相邻面积相等,则根据预设规则将多个卡片中的一个卡片确定为目标焦点;在一种实现方式中,目标焦点为该多个卡片中最左边的卡片。本申请实施例中,两个卡片的相邻面积是指,两个卡片的宽度在横坐标轴上的重叠长度;其中,卡片的宽度是指卡片的左边框横坐标至右边框横坐标之间的长度。

如果在目标卡片容器中不存在符合焦点下移规则的卡片,比如,目标卡片容器中的卡片都与当前焦点不相邻(相邻面积为0),则确定目标焦点为,目标卡片容器中最右边的卡片。

在一种实现方式中,在显示区域的目标卡片容器中,正序(从左到右)遍历每个卡片。根据卡片的左边坐标和右边坐标,计算卡片与当前焦点的相邻面积。

情况1:卡片位于当前焦点的正下方,则确定该卡片为目标焦点。

比如,如果确定卡片的左边坐标小于当前焦点的左边坐标,且该卡片的右边坐标大于当前焦点的右边坐标,则确定该卡片为目标焦点。示例性的,如图8a的(1)。

比如,如果确定卡片的左边坐标大于当前焦点的左边坐标,且该卡片的右边坐标小于当前焦点的右边坐标,则确定该卡片为目标焦点。示例性的,如图8a的(2)和图8a的(3)。

情况2:卡片位于当前焦点的左下方。如果卡片与当前焦点的相邻面积加目标卡片容器中两个卡片的间距的一半,大于或等于当前焦点宽度的一半,则确定该卡片为目标焦点。示例性的,如图8a的(4)和图8a的(5)。

情况3:卡片位于当前焦点的右下方。如果卡片与当前焦点的相邻面积加目标卡片容器中两个卡片的间距的一半,大于当前焦点宽度的一半,则确定该卡片为目标焦点。示例性的,如图8a的(6)。

下面为焦点下移算法的一种实现方式的具体示例。

/**

*@paramrect待确认卡片的坐标信息

*@parammargin卡片之间的间隔

*@return返回true表示是目标焦点,返回false表示不是目标焦点

*@focusxs[0]当前焦点的左边坐标

*@focusxs[1]当前焦点的右边坐标

*/

privatebooleanisdowninfocus(rectrect,intmargin){

if((focusxs[0]==0&&focusxs[1]==0)||

(focusxs[0]<=rect.left&&focusxs[1]>=rect.right)||

(focusxs[0]>=rect.left&&focusxs[1]<=rect.right)){

returntrue;

}elseif(isinfocusunaligned(rect,margin)){

returntrue;

}

returnfalse;

}

privatebooleanisinfocusunaligned(rectrect,intmargin){

if((focusxs[0]>=rect.left&&focusxs[1]>=rect.right)

&&(rect.right-focusxs[0]+margin/2>=(focusxs[1]-focusxs[0])/2)){

//卡片位于当前焦点的左下方,且卡片与当前焦点的相邻面积加目标卡片容器中两

//个卡片的间距的一半,大于或等于当前焦点宽度的一半

returntrue;

}elseif((focusxs[0]<=rect.left&&focusxs[1]<=rect.right))

&&(focusxs[1]-rect.left+margin/2>=(focusxs[1]-focusxs[0])/2)){

//卡片位于当前焦点的右下方,且卡片与当前焦点的相邻面积加目标卡片容器中两

//个卡片的间距的一半,大于当前焦点宽度的一半

returntrue;

}

returnfalse;

}

在一种示例中,焦点上移算法包括:

在展示界面的显示区域的目标卡片容器中,倒序(从右到左)遍历每个卡片,将符合焦点上移规则的卡片确定为目标焦点。

焦点上移规则为,目标卡片容器的多个卡片中,与当前焦点的相邻面积最大的卡片为目标焦点;如果存在多个卡片与当前焦点的相邻面积相等,则根据预设规则将多个卡片中的一个卡片确定为目标焦点;在一种实现方式中,目标焦点为该多个卡片中最右边的卡片。

如果在目标卡片容器中不存在符合焦点上移规则的卡片,比如,目标卡片容器中的卡片都与当前焦点不相邻(相邻面积为0),则确定目标焦点为,目标卡片容器中最右边的卡片。

在一种实现方式中,在显示区域的目标卡片容器中,倒序(从右到左)遍历每个卡片。根据卡片的左边坐标和右边坐标,计算卡片与当前焦点的相邻面积。

情况1:卡片位于当前焦点的正上方,则确定该卡片为目标焦点。

比如,如果确定卡片的左边坐标小于当前焦点的左边坐标,且该卡片的右边坐标大于当前焦点的右边坐标,则确定该卡片为目标焦点。示例性的,如图8b的(1)。

比如,如果确定卡片的左边坐标大于当前焦点的左边坐标,且该卡片的右边坐标小于当前焦点的右边坐标,则确定该卡片为目标焦点。示例性的,如图8b的(2)和图8b的(3)。

情况2:卡片位于当前焦点的右上方。如果卡片与当前焦点的相邻面积加目标卡片容器中两个卡片的间距的一半,大于或等于当前焦点宽度的一半,则确定该卡片为目标焦点。示例性的,如图8b的(4)和图8b的(5)。

情况3:卡片位于当前焦点的左上方。如果卡片与当前焦点的相邻面积加目标卡片容器中两个卡片的间距的一半,大于当前焦点宽度的一半,则确定该卡片为目标焦点。示例性的,如图8b的(6)。

s504、操作系统通知第一卡片更新为当前焦点,通知第二卡片失去焦点。

其中,第一卡片为上述步骤中确定的目标焦点,第二卡片为上述步骤中的当前焦点。

在一种实现方式中,每个卡片持有自身的视图对象,并且可以在初始化时创建该视图对象的标识。操作系统确定目标焦点后,调用焦点改变接口,通知第一卡片更新为当前焦点;并调用焦点改变接口,通知第二卡片不再是当前焦点。

s505、第一卡片更新为当前焦点。

示例性的,可以将第一卡片的左边坐标信息和右边坐标信息更新至focusxs数组中。

在一种实现方式中,第一卡片在卡片基类中处理更新为当前焦点的操作。比如,可以在布局文件中定义卡片基类的焦点动效,焦点动效可以是飞框样式,呼吸边框,扫光边框等。第一卡片根据布局文件中定义的卡片基类的焦点动效实现其更新为当前焦点时的动效。这样,可以统一管理焦点动效,便于维护和扩展。

本申请实施例提供的应用于电子设备的焦点管理方法,以展示界面容器为单元启动监听,根据接收到的卡片容器选中事件确定目标卡片容器,并根据焦点上下移动算法在目标卡片容器中确定目标焦点。由于只启动一个监听,对系统内存的消耗较小,便于维护,也降低了内存泄露的风险。并且可以统一管理焦点移动算法,灵活处理焦点移动算法,方便维护和扩展。

可以理解的,上述操作系统在实现上述功能时,可以划分为不同的模块。在一种示例中,上述操作系统可以包括焦点分发控制器,焦点计算器和焦点动效控制器。下面结合各个模块的功能,对图5所示的应用于电子设备的焦点管理方法进行介绍。

请参考图9,在焦点分发控制器内,以展示界面容器作为一个单元,注册并启动一个卡片容器选中监听,用于监听是否接收到卡片容器选中事件。展示界面容器接收到卡片容器选中事件,如果确定不存在当前焦点,则确定目标卡片容器为预设位置的卡片所在的卡片容器;如果存在当前焦点,接收到遥控器向上键或向下键对应的信号,则确定切换卡片容器,可以根据卡片容器指示信息确定目标卡片容器。在一些实施例中,焦点分发控制器确定目标卡片容器是否在展示界面的显示区域完全显示。如果确定目标卡片容器未在展示界面的显示区域完全显示,则向上或向下滚动各个卡片容器,使目标卡片容器在显示区域完全展示。

进一步的,焦点分发控制器分发卡片容器选中事件。在一种实现方式中,焦点分发控制器确定目标卡片容器的容器类型。比如,可以根据目标卡片容器的标识确定目标卡片容器的容器类型。容器类型可以包括横滑卡片类型和非横滑卡片类型。如果卡片容器中包括的卡片为横滑卡片,则卡片容器的容器类型为横滑卡片类型;如果卡片容器中包括的卡片为非横滑卡片,则卡片容器的容器类型为非横滑卡片类型。焦点分发控制器根据目标卡片容器的容器类型,将卡片容器选中事件分发至不同类型的焦点计算器。示例性的,焦点计算器可以包括横滑卡片焦点计算器和非横滑卡片焦点计算器,如果确定目标卡片容器的容器类型为横滑卡片类型,则将卡片容器选中事件分发至横滑卡片焦点计算器;如果确定目标卡片容器的容器类型为非横滑卡片类型,则将卡片容器选中事件分发至非横滑卡片焦点计算器。

以目标卡片容器的容器类型为横滑卡片类型为例,横滑卡片焦点计算器接收到卡片容器选中事件,则根据焦点上下移动算法在目标卡片容器中确定目标焦点。横滑卡片焦点计算器确定是否向下方向移动焦点,示例性的,如果目标卡片容器位于当前焦点下方,则确定是向下方向移动焦点;如果目标卡片容器位于当前焦点上方,则确定是向上方向移动焦点。

如果确定是向下方向移动焦点,则在展示界面的显示区域的目标卡片容器中,正序遍历每个卡片。如果确定是向上方向移动焦点,则在展示界面的显示区域的目标卡片容器中,倒序遍历每个卡片。

横滑卡片焦点计算器通知焦点动效控制器在目标卡片容器中遍历查询。焦点动效控制器根据记录的当前焦点的左边坐标和右边坐标,计算目标卡片容器中卡片与当前焦点的相邻面积,确定符合焦点下/上移规则的卡片。焦点动效控制器还向横滑卡片焦点计算器返回遍历查询的结果。遍历查询的结果可以包括找到了符合焦点下/上移规则的卡片,和未找到符合焦点下/上移规则的卡片。可选的,如果确定不存在当前焦点,则返回找到了符合焦点下/上移规则的卡片。

横滑卡片焦点计算器根据焦点动效控制器返回的结果确定,如果在目标卡片容器中找到了符合焦点下/上移规则的卡片,则确定了目标焦点;如果在目标卡片容器中未找到符合焦点下/上移规则的卡片,则确定目标卡片容器中在显示区域内的最后一个非正在加载的卡片为目标焦点。确定了目标焦点后,确定该卡片是否需要滚动。比如,如果该卡片没有完全展示,则需要通过滚动在显示区域完全展示;如果该卡片紧靠展示界面边框,则该卡片需要滚动,滚动距离为目标卡片容器中两个卡片的间距;如果该卡片离展示界面边框的距离小于目标卡片容器中两个卡片的间距,则该卡片需要滚动至离展示界面边框的距离等于目标卡片容器中两个卡片的间距。如果确定该卡片需要滚动,则开始滚动卡片。如果该卡片不需要滚动,或者卡片滚动结束,则横滑卡片焦点计算器通知焦点动效控制器焦点改变。横滑卡片焦点计算器通知当前焦点取消焦点,通知被确定为目标焦点的卡片更新为当前焦点。

被确定为目标焦点的卡片接收到更新为当前焦点的通知后,焦点动效控制器可以保存该卡片的左边坐标信息和右边坐标信息。

需要说明的是,上述各个模块的划分方式,以及各个模块实现的功能,仅为示例性说明。在实际应用中,可以有不同的划分方式。本申请实施例对此并不进行限定。

在一些实施例中,用户还可以通过按压遥控器的向左键向左移动焦点,通过按压遥控器的向右键向右移动焦点,通过按压遥控器的确定键确定选中卡片。如图10,本申请实施例提供的应用于电子设备的焦点管理方法,还可以包括:

s601、在操作系统启动一个卡片选中监听。

在操作系统内,以展示界面容器作为一个单元,注册并启动一个卡片选中监听,用于监听是否接收到卡片选中事件。

在一些实施例中,智能电视的操作系统接收到向左键事件或向右键事件,则基于当前焦点,生成卡片选中事件。可选的,智能电视的操作系统接收到确定键事件,也可以生成卡片选中事件。

s602、监听接收到卡片选中事件,根据焦点左右移动算法,确定目标焦点。

监听接收到卡片选中事件,如果确定按键事件为向左键事件或向右键事件,根据焦点左右移动算法,确定目标焦点。如果确定按键事件为确定键事件,则确定选中当前焦点。

焦点左右移动算法可以包括:如果确定接收到向左键事件,则确定目标焦点为当前焦点在当前卡片容器中左移一个位置的卡片;其中,如果当前焦点为当前卡片容器中左边第一个卡片,则确定不存在目标焦点,即不移动焦点。如果确定接收到向右键事件,则确定目标焦点为当前焦点在当前卡片容器中右移一个位置的卡片;其中,如果当前焦点为当前卡片容器中从左至右的最后一个卡片,则确定不存在目标焦点,即不移动焦点。当前卡片容器即当前焦点所在的卡片容器。

在一种实现方式中,如果确定存在目标焦点,则确定是否需要左右滚动卡片。以接收到向右键事件为例,如果目标焦点未在显示区域展示,则将卡片向左滚动,滚动距离为该卡片的宽度加当前卡片容器中两个卡片的间距;示例性的,如图11的(1);如果目标焦点部分在显示区域展示,则将卡片向左滚动,滚动距离为该卡片未展示部分的宽度加当前卡片容器中两个卡片的间距;示例性的,如图11的(2);如果目标焦点在显示区域完全展示,且该卡片紧靠展示界面右边框,则将卡片向左滚动,滚动距离为当前卡片容器中两个卡片的间距;示例性的,如图11的(3);如果目标焦点在显示区域完全展示,且该卡片与展示界面右边框的距离小于当前卡片容器中两个卡片的间距,则将卡片向左滚动,滚动距离为当前卡片容器中两个卡片的间距减该卡片与展示界面右边框的距离;示例性的,如图11的(4)。

可以理解的,接收到向左键事件,如果目标焦点未在显示区域展示,则将卡片向右滚动,滚动距离为该卡片的宽度加当前卡片容器中两个卡片的间距;如果目标焦点部分在显示区域展示,则将卡片向右滚动,滚动距离为该卡片未展示部分的宽度加当前卡片容器中两个卡片的间距;如果目标焦点在显示区域完全展示,且该卡片紧靠展示界面左边框,则将卡片向右滚动,滚动距离为当前卡片容器中两个卡片的间距;如果目标焦点在显示区域完全展示,且该卡片与展示界面左边框的距离小于当前卡片容器中两个卡片的间距,则将卡片向右滚动,滚动距离为当前卡片容器中两个卡片的间距减该卡片与展示界面左边框的距离。

下面为上述向左滚动卡片或向右滚动卡片方法的一种实现方式的具体示例。

booleanshowall=view.getglobalvisiblerect(rect);

intvisibleoffset=rect.width();

//获取卡片宽度

intdrawoffset=getviewwidth();

//未在显示区域展示,滚动卡片宽度加卡片间隔

if(!showall){

hiapplog.dlimit(tag,s:“dealfoucsview,notdisplayed”);

dohorizonsmoothscroll(isright,rightspace:drawoffset+horizonmargin,

leftspace:-drawoffset-horizonmargin);

}

//部分在显示区域展示,滚动卡片缺失部分加卡片间隔

elseif(visibleoffset<drawoffset){

hiapplog.dlimit(tag,s:“dealfoucsview,notfullydisplayed”);

dohorizonsmoothscroll(isright,

rightspace:drawoffset-visibleoffset+horizonmargin,

leftspace:-drawoffset+visibleoffset-horizonmargin);

}

//紧靠展示界面右边框,滚动卡片间隔

elseif(rect.left==0||rect.right==screenwidth){

hiapplog.dlimit(tag,s:“dealfoucsview,closetothescreenmarin”);

dohorizonsmoothscroll(isright,horizonmargin,-horizonmargin);

}

//靠近展示界面右边框,但是间隔距离小于卡片间隔,移动相差的距离

elseif(tvfoucscomputeutil,isrightspacelow(rect,screenwidth,horizonmargin)

||tvfoucscomputeutil,isleftspacelow(rect,horizonmargin){

hiapplog.dlimit(tag,

s:“dealfoucsview,neartothemargin,buttheseparationdistanceislessthanthecard

spacing”);

dohorizonsmoothscroll(isright,rightspace:horizonmargin–(screenwidth-rect.right),

leftspace:rect.left-horizonmargin);

}else{

seteffectcontroller();

setviewfoucs(childcount);

}

s603、操作系统通知第一卡片更新为当前焦点,通知第二卡片失去焦点。

具体描述可参考s504,此处不再赘述。

s604、第一卡片更新为当前焦点。

具体描述可参考s505,此处不再赘述。

本申请实施例提供的应用于电子设备的焦点管理方法,以展示界面容器为单元启动监听,接收到卡片选中事件后,根据焦点左右移动算法,确定目标焦点。这样,可以降低对系统内存的消耗,降低内存泄露的风险,并且便于维护和管理。

可以理解的,上述操作系统在实现上述功能时,可以划分为不同的模块。在一种示例中,上述操作系统可以包括焦点分发控制器,焦点计算器和焦点动效控制器。下面结合各个模块的功能,对图10所示的应用于电子设备的焦点管理方法进行介绍。

请参考图12,在焦点分发控制器内,操作系统接收到按键事件。判断该按键事件是否确定键事件。如果确定接收到的按键事件是确定键事件,则通知焦点动效控制器,选中当前焦点;比如,通知当前焦点被选中事件。如果确定接收到的按键事件不是确定键事件(即按键事件为向左键事件或向右键事件),则生成卡片选中事件。进一步的,焦点分发控制器分发卡片选中事件。可选的,在分发卡片选中事件之前,还可以成立左右按键间隔拦截和横滑卡片滑动拦截;左右按键间隔拦截是指,在接收到一次向左键事件或向右键事件之后,在预设的第一时间间隔(比如200ms)内,忽略接收到的向左键事件或向右键事件;横滑卡片滑动拦截是指,在接收到一次横滑卡片滑动操作之后,在预设的第二时间间隔(比如100ms)内,忽略接收到的横滑卡片滑动操作。

在一种实现方式中,焦点分发控制器确定当前卡片容器的容器类型。焦点分发控制器根据当前卡片容器的容器类型,将卡片选中事件分发至不同类型的焦点计算器。如果确定当前卡片容器的容器类型为横滑卡片类型,则将卡片选中事件分发至横滑卡片焦点计算器;如果确定当前卡片容器的容器类型为非横滑卡片类型,则将卡片选中事件分发至非横滑卡片焦点计算器。

以当前卡片容器的容器类型为横滑卡片类型为例,横滑卡片焦点计算器接收到卡片选中事件,判断当前焦点是否为当前卡片容器中的第一个卡片(接收到向左键事件)或最后一个卡片(接收到向右键事件);如果是,则确定不存在目标焦点,结束;如果否,根据焦点左右移动算法,确定目标焦点。

确定了目标焦点后,确定该卡片是否需要滚动。比如,如果该卡片未展示,则需要通过滚动在显示区域完全展示;该卡片没有完全展示,则需要通过滚动在显示区域完全展示;如果该卡片紧靠展示界面边框,则该卡片需要滚动,滚动距离为当前卡片容器中两个卡片的间距;如果该卡片离展示界面边框的距离小于当前卡片容器中两个卡片的间距,则该卡片需要滚动至离展示界面边框的距离等于当前卡片容器中两个卡片的间距。如果确定该卡片需要滚动,则开始滚动卡片。如果该卡片不需要滚动,或者卡片滚动结束,则横滑卡片焦点计算器通知焦点动效控制器焦点改变。横滑卡片焦点计算器通知当前焦点取消焦点,通知被确定为目标焦点的卡片更新为当前焦点。

被确定为目标焦点的卡片接收到更新为当前焦点的通知后,焦点动效控制器可以保存该卡片的左边坐标信息和右边坐标信息。

本领域技术人员可以理解的是,虽然本申请实施例是将图5对应的焦点管理方法以及图10对应的焦点管理方法分开介绍的,但是电子设备(智能电视)可以同时应用这两个焦点管理方法。事实上,用户通过比如遥控器控制电子设备确定目标焦点时,可能既按压左键或右键,又按压上键或下键,从而使得电子设备启动卡片容器选中监听,以及卡片选中监听。

需要说明的是,上述各个模块的划分方式,以及各个模块实现的功能,仅为示例性说明。在实际应用中,可以有不同的划分方式。本申请实施例对此并不进行限定。

可以理解的是,上述电子设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。

本申请实施例可以根据上述方法示例对上述电子设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用集成的单元的情况下,图13示出了上述实施例中所涉及的电子设备的一种可能的结构示意图。该电子设备700包括:处理单元701、存储单元702、通信单元703和显示单元704。

其中,处理单元701,用于对电子设备700的动作进行控制管理。例如,可以用于执行本申请实施例中确定目标焦点,更新为焦点,失去焦点,焦点动效等处理步骤;和/或用于本文所描述的技术的其它过程。

存储单元702用于保存电子设备700的程序代码和数据。例如,可以用于存储布局文件等。

通信单元703用于支持电子设备700与其他装置的通信。例如,可以用于接收遥控器的按键对应的信号。

显示单元704,用于显示电子设备700的界面。比如,可以用于显示app的展示界面;和/或用于本文所描述的技术的其它过程。

当然,上述电子设备700中的单元模块包括但不限于上述处理单元701、存储单元702、通信单元703和显示单元704。例如,电子设备700中还可以包括音频单元等。音频单元用于播放声音、音乐等。在一些实施例中,音频单元还可以用于采集用户发出的语音。

其中,处理单元701可以是处理器或控制器,例如可以是中央处理器(centralprocessingunit,cpu),数字信号处理器(digitalsignalprocessor,dsp),专用集成电路(application-specificintegratedcircuit,asic),现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。处理器可以包括应用处理器等。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。存储单元702可以是存储器。通信单元703可以是收发器、收发电路或通信接口等。显示单元704可以是显示屏。音频单元可以包括麦克风、扬声器、受话器等。

例如,处理单元701为处理器(如图3a所示的处理器110),存储单元702可以为存储器(如图3a所示的存储器120),通信单元703可以为无线通信模块(如图3a所示的无线通信模块150)、通信接口等,显示单元704为显示屏(如图3a所示的显示屏140)。音频单元可以包括扬声器(如图3a所示的扬声器130a)、音频模块(如图3a所示的音频模块130)。本申请实施例所提供的电子设备700可以为图3a所示的电子设备100。其中,上述处理器、存储器、显示屏和通信接口等可以耦合在一起,例如通过总线连接。

本申请实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机程序代码,当上述处理器执行该计算机程序代码时,电子设备执行图5或图10中的相关方法步骤实现上述实施例中的方法。

本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行图5或图10中的相关方法步骤实现上述实施例中的方法。

其中,本申请实施例提供的电子设备700、计算机存储介质或者计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以使用硬件的形式实现,也可以使用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1