一种窗口显示方法及智能电视与流程

文档序号:17773538发布日期:2019-05-28 19:44阅读:437来源:国知局
一种窗口显示方法及智能电视与流程

本申请涉及智能电视技术领域,尤其涉及一种窗口显示方法及智能电视。



背景技术:

当前智能电视的操作系统一般采用安卓系统。

安卓7.0版本及以后的系统可以支持多任务栈,来实现多窗口显示不同activity(activity是安卓组件中最重要的四大组件之一,一个activity对应一个应用程序界面)的功能。也即多窗口中每个窗口对应一个任务栈,每个任务栈中存放对应窗口中需显示的activity。其中,安卓7.0版本及以后的系统可以支持应用栈、画中画模式栈、分屏模式栈等,这里实现多窗口显示时可以是:例如一个窗口对应应用栈,另一个窗口对应画中画模式栈或分屏模式栈。

但是,安卓7.0版本之前的系统不支持多任务栈,其仅支持应用栈,从而该应用栈仅对应一个窗口(通常指全屏窗口),所以无法实现上述多窗口显示不同activity的功能。

例如,在采用安卓5.0版本的系统时,当前屏幕上全屏显示activitya,当在activitya上启动activityb时,由于activitya和activityb存放在同一个应用栈中,所以根据当前安卓系统下activity的启动规则,activityb在该应用栈的栈顶,需推送至前台显示,也即activityb默认全屏显示,且activityb覆盖activitya,从而仅能展现一个显示activityb的窗口,无法实现同时显示activitya的窗口和activityb的窗口的功能。

因此,需要提供一种在一个任务栈中实现多窗口显示不同activity的方法,以避免受安卓系统版本限制,提高用户体验。



技术实现要素:

本申请实施例提供了一种窗口显示方法及智能电视,用以在同一屏幕中可呈现多个界面的展示窗口。

本申请实施例提供的一种窗口显示方法,包括:

在第一界面上接收启动第二界面的请求;

判断所述请求中是否携带用于指示采用小窗口显示所述第二界面的信息;

若是,则根据所述信息,启动所述第二界面,并将所述第二界面采用小窗口显示。

通过该方法,在第一界面上接收启动第二界面的请求;判断所述请求中是否携带用于指示采用小窗口显示所述第二界面的信息;若是,则根据所述信息,启动所述第二界面,并将所述第二界面采用小窗口显示。这样,通过将第二界面采用小窗口显示,能够避免第二界面按照安卓系统的activity启动规则而采用默认全屏显示方式,从而在同一屏幕中可同时呈现第一界面和第二界面的展示窗口。

可选地,所述信息中包含的第一参数用于指示所述第二界面采用小窗口显示。可选地,所述信息中包含第二参数和第三参数,所述第二参数用于指示所述第二界面对应的小窗口的显示大小,所述第三参数用于指示所述第二界面对应的小窗口的显示位置。

可选地,所述将所述第二界面采用小窗口显示之前,还包括:

根据所述第二参数,确定所述第二界面对应的小窗口的显示边界;

以及根据所述第三参数,确定所述小窗口在全屏中的显示位置。

可选地,所述将所述第二界面采用小窗口显示之前,还包括:

将所述第二界面对应的主题置为透明,以保持所述第一界面可见。

可选地,所述将所述第二界面采用小窗口显示时,所述第一界面采用全屏窗口或小窗口显示。可选地,接收采用全屏窗口显示第二界面的请求;

将所述小窗口中显示的所述第二界面采用全屏窗口显示。

相应地,本申请实施例提供的一种智能电视,包括:

接收单元,用于在第一界面上接收启动第二界面的请求;

判断单元,用于判断所述请求中是否携带用于指示采用小窗口显示所述第二界面的信息;

处理单元,用于若是,则根据所述信息,启动所述第二界面,并将所述第二界面采用小窗口显示。

本申请实施例还提供的一种智能电视,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述本申请实施例提供的任一种所述的方法。

本申请另一实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述任一种方法。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种窗口显示方法示意图;

图2为本申请实施例提供的一种用于窗口显示的框架内部执行方法的流程示意图;

图3为本申请实施例提供的一种采用小窗口显示activityb的多窗口效果示意图;

图4为本申请实施例提供的一种采用全屏窗口显示activityb的效果示意图;

图5为本申请实施例提供的一种智能电视;

图6为本申请实施例还提供的一种智能电视。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例借助对android框架activity启动属性和window显示的修改,既可实现多窗口显示效果,同时无需受android版本限制。

相关技术中,在仅支持应用栈的android系统中,当在activitya上启动activityb时,activityb的显示区域默认对应全屏,由此仅展示一个显示activityb的全屏窗口。所以本申请中为实现一个应用栈下的多窗口显示效果,将activityb的显示区域限制在指定边界mbounds范围所限定的区域中,activitya的显示区域不变,从而使得activitya和activityb分别对应不同显示窗口。

进一步的,相关技术中,由于activityb覆盖在activitya之上,activitya的生命周期进入暂停pause状态;并且当activityb的主题theme是不透明的,android系统会将activitya的状态由可见修改为不可见,导致无法显示activitya。所以本申请中将activityb的theme置为透明,这样依据当前android系统规则,activitya的状态仍为可见,从而使得activitya和activityb均显示。

下面结合说明书附图对本申请各个实施例进行详细描述。需要说明的是,本申请实施例的展示顺序仅代表实施例的先后顺序,并不代表实施例所提供的技术方案的优劣。

参见图1,本申请实施例提供的一种窗口显示方法,包括:

s101、在第一界面上接收启动第二界面的请求;

s102、判断所述请求中是否携带用于指示采用小窗口显示所述第二界面的信息;

例如,电视系统检测到请求中携带参数flag_adjust_win_enabled_left_top_4,则确定采用小窗口显示第二界面。

s103、若是,则根据所述信息,启动所述第二界面,并采用小窗口显示所述第二界面。

以在activitya启动activityb为例,具体实现方法如以下步骤所示:

步骤一,activitya发送启动activity请求到框架,框架例如为电视系统;

步骤二,框架接收该请求,检验其合法性,解析启动activityb时携带的信息;所述携带的信息包括一组预先定义的有特殊含义的常量,当前常用的有20~30个,用于指示启动activityb的方式为小窗口;

步骤三,框架修改activitya的生命周期为pause状态,然后根据activityb的主题是否透明,再决定是否将activitya修改为可见状态;

步骤四,框架将activityb状态变为可见状态,并且根据上述信息中包含的针对activityb所设定的mbounds,绘制出activityb的界面ui。

更具体的,参见图2,为本申请实施例提供的一种用于窗口显示的框架内部执行方法的流程图,以在activitya启动activityb为例,具体包括:

首先框架接收到activitya发送的启动activityb的请求,并检测启动请求中是否包含参数flag_adjust;该参数用于指示activityb采用小窗口显示方式;

如果没有包含参数flag_adjust,则activityb采用全屏正常启动;

如果包含参数flag_adjust,则修改activityb对应的activitytask中的参数fullscreenflag为flase,也即框架强制activityb的theme为透明,这样依据当前安卓系统规则,activitya仍然保持可见状态。

接着,检测启动请求中是否携带屏幕调整参数win_enabled_left_top_4;该参数用于指示activityb对应的显示窗口的边界大小和位置;

如果没有携带屏幕调整参数,则activityb采用全屏正常启动;

如果携带屏幕调整参数,则根据该参数中的窗口调整系数计算activityb对应显示窗口的mbounds,根据该参数中的窗口位置信息确定activityb对应显示窗口的mbounds在屏幕中的位置;

接着,将activityb窗口启动属性作特殊标记,用于指示activityb窗口是小窗口显示;

然后,activityb启动并采用小窗口显示。例如,如图3所示,为本申请实施例提供的一种采用小窗口显示activityb的多窗口效果示意图,图中显示activityb的小窗口位于屏幕的右上方,边界大小为屏幕的四分之一;显示activitya的全屏窗口保持全屏显示。

需要说明的是,在图3所示界面中,activityb采用小窗口显示时,还可以将activitya对应的显示区域由全屏窗口修改为小窗口,以满足用户需求,本实施例不作具体限制。

还需说明的是,例如,activityb对应的窗口的边界大小可以为屏幕的三分之一,四分之一或五分之一,activityb对应的窗口的位置可以为左上方、右上方、左下方或右下方。将边界大小和位置进行组合,activityb对应的窗口的显示区域可以有12种,例如,activityb对应的窗口位于屏幕左上方,边界大小为屏幕的三分之一;activityb对应的窗口位于屏幕左上方,边界大小为屏幕的四分之一;activityb对应的窗口位于屏幕左上方,边界大小为屏幕的五分之一;activityb对应的窗口位于屏幕右上方,边界大小为屏幕的三分之一;activityb对应的窗口位于屏幕右上方,边界大小为屏幕的四分之一;activityb对应的窗口位于屏幕右上方,边界大小为屏幕的五分之一;activityb对应的窗口位于屏幕左下方,边界大小为屏幕的三分之一;activityb对应的窗口位于屏幕左下方,边界大小为屏幕的四分之一;activityb对应的窗口位于屏幕左下方,边界大小为屏幕的五分之一;activityb对应的窗口位于屏幕右下方,边界大小为屏幕的三分之一;activityb对应的窗口位于屏幕右下方,边界大小为屏幕的四分之一;activityb对应的窗口位于屏幕右下方,边界大小为屏幕的五分之一。

具体地,例如,在请求启动activityb时,在启动请求中携带了如下参数:flag_adjust_win_enabled_left_top_4,框架收到这组参数之后,首先解析到参数flag_adjust,表示activityb采用小窗口显示。接着将activityb对应activitytask中的参数fullscreenflag置为flase,表示activityb的theme为透明。然后根据约定,由_4参数获得窗口调整系数为4,由_left_top参数获得窗口位于屏幕左上方。再根据窗口调整系数计算出activityb对应的mbounds[0,1920/4,0,1080/4],即为mbounds[0,480,0,270],也就是说,activityb的宽为屏幕的四分之一,即宽为480,高为屏幕的四分之一,即高为270。这样框架就会将activityb以[0,480,0,270]的mbounds显示在屏幕左上方,同时activitya的显示状态保持不变。

当用户想要全屏显示activityb时,通过点击遥控器上的按键,原有的采用小窗口显示的activityb的特殊标记被清除,例如,被标记的参数为:persist.muilti-window-area:true,则activityb以全屏窗口显示。如图4所示,为本申请实施例提供的一种采用全屏窗口显示activityb的效果示意图。

本申请实施例通过修改安卓系统activity全屏属性和修改安卓窗口显示机制,提供了一种可灵活应用于智能电视整机系统,实现多窗口效果的交互方式,可适用于各第三方应用(第三方应用,例如为qq音乐、爱奇艺、优酷等各种播放应用),无须区分android版本。

相应地,参见图5,本申请实施例提供的一种智能电视,包括:

接收单元11,用于在第一界面上接收启动第二界面的请求;

判断单元12,用于判断所述请求中是否携带用于指示采用小窗口显示所述第二界面的信息;

处理单元13,用于若是,则根据所述信息,启动所述第二界面,并将所述第二界面采用小窗口显示。

参见图6,本申请实施例还提供的一种智能电视,包括:处理器600、存储器610、用户接口620及总线接口。

其中,在图6中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器600代表的一个或多个处理器和存储器610代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。

可选地,用户接口620可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。

处理器600负责管理总线架构和通常的处理,存储器610可以存储处理器600在执行操作时所使用的数据。

可选地,处理器600可以是cpu(中央处埋器)、asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或cpld(complexprogrammablelogicdevice,复杂可编程逻辑器件)。

存储器610可以包括只读存储器(rom)和随机存取存储器(ram),并向处理器提供存储器中存储的程序指令和数据。在本申请实施例中,存储器可以用于存储本申请实施例提供的任一所述方法的程序。

处理器通过调用存储器存储的程序指令,处理器用于按照获得的程序指令执行本申请实施例提供的图1或图2所述方法,以实现在同一屏幕中可呈现多个界面的展示窗口,避免由于新窗口全屏显示造成的之前展示的窗口不可见的问题。

本申请实施例提供了一种计算机存储介质,用于储存为上述本申请实施例提供的智能电视所用的计算机程序指令,其包含用于执行上述本申请实施例提供的图1或图2所述方法的程序。

所述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nandflash)、固态硬盘(ssd))等。

综上所述,本申请实施例提供的一种窗口显示方法及智能电视,通过将新启动的第二界面采用小窗口显示,能够避免第二界面按照安卓系统的activity启动规则而采用默认全屏显示方式,从而在同一屏幕中可呈现多个界面的展示窗口。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

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