视图滚动方法、装置及智能电视与流程

文档序号:12963138阅读:172来源:国知局
视图滚动方法、装置及智能电视与流程

本发明涉及视图滚动领域,具体而言,涉及一种视图滚动方法、装置及智能电视。



背景技术:

目前大多数安卓智能电视是根据遥控设备上的按键来控制视图的滚动。由于视图的加载由按键进行控制,因此电视机与用户之间无法进行直接交互。经发明人研究发现,当用户在长按按键时,视图的滚动距离会超过理想距离值而出现无限滑动的情况,从而导致视图出现过度加载,严重影响用户体验。



技术实现要素:

为了克服现有技术中的上述不足,本发明的目的在于提供一种视图滚动方法、装置及智能电视,以解决现有的安卓电视在接收到长按键事件时带来的视图过度加载的问题,提高了用户体验。

为了实现上述目的,本发明较佳实施例采用的技术方案如下:

本发明较佳实施例提供一种视图滚动方法,应用于智能电视。所述智能电视预先配置有短按键事件对应的单位滚动距离值,以及长按键事件对应的视图滚动步数,其中,所述单位滚动距离值对应视图滚动一步的距离值。所述方法包括:

对接收的按键事件进行检测;

在检测到所述按键事件为长按键事件时,控制视图滚动所述视图滚动步数对应的视图距离;

在所述视图滚动完所述视图滚动步数对应的视图距离时,显示滚动后的视图。

在本发明较佳实施例中,所述方法还包括:

对所述单位滚动距离值进行设置;

所述对所述单位滚动距离值进行设置的方式,包括:

计算像素密度的最大近似值;

根据所述智能电视的单位像素长度和像素密度的最大近似值计算所述单位滚动距离值。其中,所述单位滚动距离值的计算公式为:

usv=ppimax*hpx

其中,usv为单位滚动距离值,ppimax为像素密度的最大近似值,hpx为单位像素长度,px为分辨率横向取值、py为分辨率纵向取值,c为显示屏幕对角线长度。

在本发明较佳实施例中,所述像素密度的最大近似值的计算方式,包括:

建立ldpi-xxhdpi的分辨率离散点集;

对ldpi-xxhdpi的分辨率离散点集进行拟合,得到拟合后的ldpi-xxhdpi分布曲线;

根据拟合后的ldpi-xxhdpi分布曲线,将像素密度标记在拟合后的ldpi-xxhdpi分布曲线的坐标上;

求取像素密度在拟合后的ldpi-xxhdpi分布曲线的点坐标与ldpi-xxhdpi分布曲线的垂直焦点;

根据所述垂直焦点得到所述像素密度的最大近似值。

在本发明较佳实施例中,所述方法还包括;

对所述视图滚动步数进行设置;

所述对所述视图滚动步数进行设置的方式,包括:

计算视图滚动的初始距离值,其中,所述初始距离值包括初始高度值或者初始宽度值;

根据所述初始距离值和预设的单位滚动距离值,计算所述视图滚动步数,其中,所述视图滚动步数的计算公式为:

其中,vh为视图滚动的初始距离值,usv为预设的单位滚动距离值。

在本发明较佳实施例中,若所述初始距离值为初始高度值,则所述视图滚动的初始距离值的计算方式,包括:

对图片载体控件进行检测;

若所述图片载体控件处于创建阶段,则调用getheigth函数获取所述图片载体控件的第一高度值;

判断所述第一高度值是否大于0,若大于0,则将所述第一高度值作为所述视图滚动的初始高度值;以及

若所述图片载体控件创建完成并被容纳入滚动控件,则调用getmeasureheight函数获取所述图片载体控件的第二高度值;

判断所述第二高度值是否大于所述第一高度值,若大于所述第一高度值,则将所述第二高度值作为所述视图滚动的初始高度值。

在本发明较佳实施例中,所述对接收的按键事件进行检测的步骤,包括:

获取所述按键事件对应的按键时长;

将所述按键事件对应的按键时长与预设时长阈值进行比对;

根据比对结果判断是否为长按键事件。

在本发明较佳实施例中,所述在检测到所述按键事件为长按键事件时,控制视图滚动所述视图滚动步数对应的视图距离的步骤,包括:

解析所述按键事件对应的按键事件指令;

响应所述按键事件指令,控制视图滚动所述视图滚动步数对应的视图距离。

在本发明较佳实施例中,所述控制视图滚动所述视图滚动步数对应的视图距离的步骤,包括:

调用滚动监控器对视图的滚动过程进行监控;

若在视图的滚动过程中接收到重绘视图指令,则在所述视图滚动结束后处理所述重绘视图指令对应的重绘事件。

本发明较佳实施例还提供一种视图滚动装置,应用于智能电视,。所述智能电视预先配置有短按键事件对应的单位滚动距离值,以及长按键事件对应的视图滚动步数。其中,所述单位滚动距离值对应视图滚动一步的距离值。所述装置包括:

检测模块,用于对接收的按键事件进行检测;

滚动模块,用于在检测到所述按键事件为长按键事件时,控制视图滚动所述视图滚动步数对应的视图距离;

显示模块,用于在所述视图滚动完所述视图滚动步数对应的视图距离时,显示滚动后的视图。

本发明较佳实施例还提供一种智能电视,所述智能电视包括:

存储器;

处理器;以及

视图滚动装置,所述视图滚动装置安装于所述存储器中并包括一个或多个由所述处理器执行的软件功能模块,所述装置包括:

检测模块,用于对接收的按键事件进行检测;

滚动模块,用于在检测到所述按键事件为长按键事件时,控制视图滚动所述视图滚动步数对应的视图距离;

显示模块,用于在所述视图滚动完所述视图滚动步数对应的视图距离时,显示滚动后的视图。

相对于现有技术而言,本发明具有以下有益效果:

本发明实施例提供的视图滚动方法、装置及智能电视。该方法包括:对接收的按键事件进行检测;在检测到所述按键事件为长按键事件时,控制视图滚动所述视图滚动步数对应的视图距离;在所述视图滚动完所述视图滚动步数对应的视图距离时,显示滚动后的视图。基于上述设计,本发明提供的技术方案可以解决现有的安卓电视在接收到长按键事件时带来的视图过度加载的问题,提高了用户体验,提高了用户体验。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明较佳实施例提供的智能电视的一种方框示意图;

图2为本发明较佳实施例提供的视图滚动方法的一种流程示意图;

图3为图2中所示的步骤s210包括的各个子步骤的一种流程示意图;

图4为图2中所示的步骤s220包括的各个子步骤的一种流程示意图;

图5为图2中所示的步骤s220包括的各个子步骤的另一种流程示意图;

图6为本发明较佳实施例提供的视图滚动装置的一种功能模块图。

图标:100-智能电视;110-存储器;120-处理器;130-通信单元;140-存储控制器;150-显示单元;200-视图滚动装置;210-检测模块;220-滚动模块;230-显示模块。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语"第一"、"第二"等仅用于区分描述,而不能理解为指示或暗示相对重要性。

下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

请参阅图1,为本发明较佳实施例提供的智能电视100的方框示意图。本发明实施例中,所述智能电视100为安卓(android)智能电视。所述智能电视100可以与遥控设备(例如,遥控器,移动终端等)连接,以接收遥控设备发送的按键信号。

如图1所示,所述智能电视100可以包括存储器110、处理器120、通信单元130、存储控制器140以及显示单元150。所述存储器110、处理器120、通信单元130、存储控制器140以及显示单元150相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器110中存储有视图滚动装置200,所述视图滚动装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器110中的软件功能模块,所述处理器120通过运行存储在存储器110内的软件程序以及模块,如本发明实施例中的视图滚动装置200,从而执行各种功能应用以及数据处理,即实现本发明实施例中的视图滚动方法。

其中,所述存储器110可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器110可进一步包括相对于处理器120远程设置的远程存储器,这些远程存储器可以通过网络连接至所述智能电视100。其中,存储器110用于存储程序,所述处理器120在接收到执行指令后,执行所述程序。进一步地,通信单元130将各种输入/输入装置耦合至处理器120以及存储器110,上述存储器110内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通讯,从而提供其他软件组件的运行环境。

所述处理器120可以是一种集成电路芯片,具有信号的处理能力。上述的处理器120可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等。还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器120也可以是任何常规的处理器等。

所述显示单元150可以在所述智能电视100与用户之间同时提供一个输出及输入界面。具体地,所述显示单元150向用户显示视频或者图像输出,这些视频输出的内容可包括文字、图形、视频、及其任意组合。一些输出结果是对应于一些用户界面对象。此外,所述显示单元150还可以接收用户的输入,例如用户的点击、滑动等手势操作,以便用户界面对象对这些用户的输入做出响应。检测用户输入的技术可以是基于电阻式、电容式或者其他任意可能的触控检测技术。可选地,所述显示单元150的具体实例可以包括但并不限于液晶显示器或发光聚合物显示器。

可以理解,图1所示的结构仅为示意,所述智能电视100还可以包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。

请参阅图2,为本发明较佳实施例提供的视图滚动方法的一种流程示意图,所述方法由图1所示的智能电视100执行。所应说明的是,本发明实施例提供的方法不以图2及以下所述的具体顺序为限制。所述方法的具体流程如下:

步骤s210,对接收的按键事件进行检测。

具体地,作为一种实施方式,请参阅图3,所述步骤s210可以包括以下子步骤:

子步骤s211,获取按键事件对应的按键时长。

子步骤s212,将所述按键事件对应的按键时长与预设时长阈值进行比对。

本实施例中,在接收到遥控设备发送的按键事件(keyevent)时,将所述按键事件对应的按键时长与预设时长阈值进行比对。其中,所述预设时长阈值可以根据设计需求进行设置,本实施例对此不作具体限制。作为一种优选的实施方式,所述预设时长阈值可以设置为120ms。

子步骤s213,根据比对结果判断是否为长按键事件。

本实施例中,若所述按键事件对应的按键时长大于所述预设时长阈值,则判定所述按键事件为长按键事件。

步骤s220,在检测到所述按键事件为长按键事件时,控制视图滚动所述视图滚动步数对应的视图距离。

现有的智能电视100的视图的加载都由按键进行控制,由于绝大多数智能电视100没有屏幕压力传感器,且人与智能电视100之间通过遥控设备进行意图传输,因此智能电视100与人之间无法进行直接交互,从而导致的一个问题是,当用户按下按键(例如,向下按键),假设视图滚动20个单位距离(像素密度ppi);如果用户长按向下按键一秒,按照手指按遥控按键的最快频率为20ms,那么1s内会触发50次按键,因此1s理想滚动距离为50*20=1000个单位距离,但经发明人实际测试发现视图快速滚动了至少6000个单位距离,远远超过理想滚动距离。

上述按键模式中,长按1秒导致滑动距离远远超过理想距离值,经发明人研究发现根本原因在于按键指令在分发消费的过程中是以一种队列进行先进先出的处理,而长按按键将导致按键事件大批量地进入按键队列,从而导致在极短的时间内按键事件队列出现阻塞,而阻塞的后果就是view无法获取按键事件结束指令(keyup),进而导致视图出现无限滑动,视图容器控件顶部或底部容易出现空白,尤其是在某些情况(例如,高清大图的视图加载过程中),长按按键很容易出现anr(applicationnotresponsed)异常或oom(outofmemery)异常。

而本实施例可以完美解决上述长按键事件带来的视图过度加载的问题。具体地,在本实施例中,所述智能电视100预先配置有短按键事件对应的单位滚动距离值,以及长按键事件对应的视图滚动步数。其中,所述单位滚动距离值对应视图滚动一步的距离值。

进一步地,本实施例需要对所述单位滚动距离值进行设置。详细地,首先,计算所述智能电视100的显示屏幕的像素密度的最大近似值,然后根据所述智能电视100的单位像素长度和像素密度的最大近似值计算所述单位滚动距离值。所述单位滚动距离值的计算公式可以为:

usv=ppimax*hpx

其中,usv为单位滚动距离值,ppimax为像素密度最大近似值,hpx为单位像素长度,px为分辨率横向取值、py为分辨率纵向取值,c为显示屏幕对角线长度。

在一般情况下,所述像素密度为默认值,例如,以47英寸,1920*1080分辨率的智能电视100为例,其像素密度为320,单位像素长度为2.559,根据上述计算式可以计算出所述usv=320*2.55=818.97英寸,因此每按下一次向下按键(keydown),那么视图就向上滚动818.97英寸的距离。但是由于电视市场的杂乱无章,导致部分电视的像素密度并非标准的像素密度取值。

鉴于此,本实施例还需要解决部分电视的ppi为非标准值的问题。作为一种实施方式,本实施例可以通过计算像素密度的最大近似值来解决非标准像素密度的智能电视100的单位滚动距离值计算问题,从而覆盖兼容目前所有的智能电视100。

详细地,首先,建立ldpi-xxhdpi的分辨率离散点集,其中,所述离散点集集合可以为:{[240,320],[320,480],[480,800],[720,1280],[1080,1920]}。然后,对ldpi-xxhdpi的分辨率离散点集进行拟合,得到拟合后的ldpi-xxhdpi分布曲线。再然后,根据上述拟合后的ldpi-xxhdpi分布曲线,将像素密度标记在拟合后的ldpi-xxhdpi分布曲线的坐标上,最后求取像素密度在拟合后的ldpi-xxhdpi分布曲线的点坐标与ldpi-xxhdpi分布曲线的垂直焦点,根据所述垂直焦点可以得到所述像素密度的最大近似值。

进一步地,本实施例中还需要对所述视图滚动步数进行设置。详细地,首先,计算视图滚动的初始距离值,然后根据所述初始距离值和预设的单位滚动距离值,计算所述视图滚动步数。所述视图滚动步数的计算公式为:

其中,vh为视图滚动的初始距离值,usv为预设的单位滚动距离值。

以47英寸,1920*1080分辨率的智能电视100为例,屏幕高度方向最大可显示1080像素的视图,在上下滚动高度为1920像素时,单位滚动距离值usv=818.97<1080,因此usv计算合理,则所述视图滚动步数sp的计算公式为:

计算sp=1920/818.97≈3,其中vh为视图的初始距离值。那么所述视图滚动步数则为三步。

本实施例中,所述初始距离值可以包括初始高度值或者初始宽度值。若视图进行上下滚动,则所述初始距离值为初始高度值,若视图进行左右滚动,则所述初始距离值为初始宽度值。

可选地,以所述初始距离值为初始高度值为例,所述视图滚动的初始距离值的计算方式可以是:首先,对图片载体控件(imageview)进行检测,若所述图片载体控件处于创建阶段,则调用getheigth函数获取所述图片载体控件的第一高度值。然后,判断所述第一高度值是否大于0,若大于0,则将所述第一高度值作为所述视图滚动的初始高度值。此外,若所述图片载体控件创建完成并被容纳入滚动控件,也就是视图滚动之前的阶段,此时则调用getmeasureheight函数获取所述图片载体控件的第二高度值,然后判断所述第二高度值是否大于所述第一高度值,若大于所述第一高度值,则将所述第二高度值作为所述视图滚动的初始高度值;若不大于所述第一高度值,则将所述第一高度值作为所述视图滚动的初始高度值。

本实施例中,在检测到所述按键时间为长按键事件时,可以根据上述设置的单位滚动距离值和视图滚动步数,控制视图对应进行滚动。具体地,请参阅图4,所述步骤s220可以包括以下子步骤:

子步骤s221,解析所述按键事件对应的按键事件指令。

本实施例中,可以将遥控设备发送的按键事件转化为对应的按键事件指令。其中,所述按键事件可以包括上方向按键、下方向按键、左方向按键、右方向按键、确定按键以及返回按键。所述按键事件与按键事件指令的对应关系可以参阅下表。

步骤s222,响应所述按键事件指令,控制视图滚动所述视图滚动步数对应的视图距离。

本实施例中,在解析得到所述按键事件对应的按键事件指令后,响应所述按键事件指令,按照所述按键事件指令的对应方向控制视图滚动所述视图滚动步数对应的视图距离。例如,若所述按键事件指令为focus_down,那么就控制所述视图向上滑动所述视图滚动步数对应的视图距离。

需要注意的是,视图在滚动过程中一旦出现重绘,那么其初始长度值会发生变化,因此计算的单位滚动距离值usv会失效。为了防止视图重绘导致的单位滚动距离值计算失效的问题,请参阅图5,所述步骤s220还可以包括以下子步骤:

子步骤s223,调用滚动监控器对视图的滚动过程进行监控。

子步骤s224,若在视图的滚动过程中接收到重绘视图指令,则在所述视图滚动结束后处理所述重绘视图指令对应的重绘事件。

本实施例中,可以通过调用滚动监控器(scrolllistener)来监控所述视图的滚动,并检测滚动过程中是否接收到重绘视图指令。若检测到滚动过程中接收到重绘视图指令,则延迟对重绘事件进行处理,直到所述滚动监控器(scrolllistener)监控到所述视图滚动结束后,开始处理所述重绘视图指令对应的重绘事件。

请再次参阅图2,步骤s230,在所述视图滚动完所述视图滚动步数对应的视图距离时,显示滚动后的视图。

本实施例中,在所述视图滚动完所述视图滚动步数对应的视图距离后,所述视图完成最大滚动距离,即使用户继续长按按键,视图不再继续滚动,从而解决了现有的长按键事件带来的视图过度加载的问题。

值得注意的是,在其它实施方式中,所述单位滚动距离值和所述视图滚动步数也可以不仅限于本实施例提供的计算方式,例如,还可以由用户直接进行设置,或者由电视厂商进行设置。此外,还需要注意的是,本实施例提供的方法也可以不仅限于应用于智能电视100,还可以应用于智能机顶盒、电视机盒子等设备上。

进一步地,请参阅图6,本发明较佳实施例还提供一种视图滚动装置200,所述装置安装于所述存储器110中并包括一个或多个可由所述处理器120执行的软件功能模块,所述装置包括:

检测模块210,用于对接收的按键事件进行检测。

滚动模块220,用于在检测到所述按键事件为长按键事件时,控制视图滚动所述视图滚动步数对应的视图距离。

显示模块230,用于在所述视图滚动完所述视图滚动步数对应的视图距离时,显示滚动后的视图。

本实施例中的各功能模块的具体操作方法可参照上述方法实施例中相应步骤的详细描述,在此不再重复赘述。

综上所述,本发明实施例提供的视图滚动方法、装置及智能电视100。该方法包括:对接收的按键事件进行检测;在检测到所述按键事件为长按键事件时,控制视图滚动所述视图滚动步数对应的视图距离;在所述视图滚动完所述视图滚动步数对应的视图距离时,显示滚动后的视图。基于上述设计,本发明提供的技术方案解决现有的安卓电视在接收到长按键事件时带来的视图过度加载的问题,提高了用户体验。

在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

需要说明的是,在本文中,术语"包括"、"包含"或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

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