视图处理方法、装置、及电子设备与流程

文档序号:16536157发布日期:2019-01-08 19:55阅读:179来源:国知局
视图处理方法、装置、及电子设备与流程

本发明实施例涉及计算机技术领域,尤其涉及一种视图处理方法、装置、及电子设备。



背景技术:

随着智能设备的兴起,用户与设备之间的交互方式越来越多样化,用户可以手指触摸屏幕对设备显示的视图进行操作,实现交互。如,通过点击、按压和滑动等对显示的视图进行操作。

现有技术中,智能设备在切换显示的视图时,只能根据用户的横向滑动操作进行横向的切换和显示,使得交互方式单一,并且,存在某些情况下无法实现横向滑动操作的场景,由此使得视图切换不能满足不同使用场景的需求。



技术实现要素:

有鉴于此,本发明实施例提供一种视图处理方法、装置、及电子设备,以解决现有的视图切换不能满足不同使用场景的需求的问题。

根据本发明实施例的第一方面,提供了一种视图处理方法,包括:获取待显示的至少两个视图的信息,以及,承载所述至少两个视图的显示容器的信息;按照所述至少两个视图的待显示顺序,将所述至少两个视图在所述显示容器中进行纵向布局,以通过所述显示容器进行所述至少两个视图的纵向切换。

根据本发明实施例的第二方面,提供了一种视图处理装置,包括:信息获取模块,用于获取待显示的至少两个视图的信息,以及,承载所述至少两个视图的显示容器的信息;第一布局模块,用于按照所述至少两个视图的待显示顺序,将所述至少两个视图在所述显示容器中进行纵向布局,以通过所述显示容器进行所述至少两个视图的纵向切换。

根据本发明实施例的第三方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如第一方面所述的视图处理方法对应的操作。

由以上技术方案可见,本发明实施例提供的视图处理方案,在获取了显示容器和待显示的视图的信息后,根据各个待显示的视图和显示顺序在显示容器中对各个待显示的视图进行纵向布局,以使后续可以纵向切换视图,扩展了视图切换场景。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1为根据本发明实施例一的一种视图处理方法的步骤流程图;

图2为根据本发明实施例一的一种视图纵向布局的示意图;

图3为根据本发明实施例二的一种视图处理方法的步骤流程图;

图4为根据本发明实施例三的一种视图处理装置的结构框图;

图5为根据本发明实施例四的一种视图处理装置的结构框图;

图6为根据本发明实施例五的一种电子设备的结构示意图。

具体实施方式

为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。

下面结合本发明实施例附图进一步说明本发明实施例具体实现。

实施例一

参照图1,示出了根据本发明实施例一的一种视图处理方法的步骤流程图。

本实施例的视图处理方法包括以下步骤:

步骤s102:获取待显示的至少两个视图的信息,以及,承载所述至少两个视图的显示容器的信息。

在进行视图切换时,需要至少两个视图,以在接收到用户的触发操作时,切换可见的视图,实现视图的切换。待显示的视图可以设置在显示容器中,显示容器用于承载多个视图,以实现视图的滑动切换。具体到本实施例,承载视图的显示容器用于实现视图的上下滑动切换。

待显示的视图的信息包括但不限于每个待显示的视图的标识、地址、宽度、高度,等等信息。

待显示的视图的宽度和高度可以根据预先设定的视图布局规则确定。例如,若待显示的视图的布局规则中设置宽度和高度为固定值,则该待显示的视图的宽度和高度为该固定值。但不限于此,非固定值的情形也同样适用于本发明实施例提供的方案。

显示容器的信息包括但不限于显示容器的标识、布局、内容、宽度、高度等。

步骤s104:按照所述至少两个视图的待显示顺序,将所述至少两个视图在所述显示容器中进行纵向布局,以通过所述显示容器进行所述至少两个视图的纵向切换。

其中,待显示的视图的显示顺序可以根据需求确定,本实施例对此不作限定。

将待显示的视图进行纵向布局,也即沿竖直轴方向进行布局,一种将待显示的视图在显示容器中进行纵向布局的示意图如图2所示。可选地,可以根据每个待显示的视图的待显示顺序和其宽度、高度,确定其在显示容器中的位置,该位置可以通过坐标的方式指示。

以待显示的视图为三个,在显示容器中进行纵向布局为例,待显示的视图b位于显示容器的中部,其左上角点的坐标为(0,0)、右下角点的坐标为(weight,height)。待显示的视图a位于待显示的视图b的上方,其左上角点的坐标为(0,-height),其右下角的坐标为(weight,0)。待显示的视图c位于待显示的视图b的下方,其左上角点的坐标为(0,height),其右下角坐标为(weigh,2height)。

通过将待显示的视图在显示容器中进行纵向布局,使得在屏幕可见区域更换显示视图时可以通过上下滑动实现,进而能够适应一些需要纵向切换视图的使用场景的需求,提升适应性,使用户操作更加方便。

该视图处理方法在获取了显示容器和待显示的视图的信息后,根据各个待显示的视图显示顺序在显示容器中对各个待显示的视图进行纵向布局,以使后续可以纵向切换视图,扩展了视图切换场景。

实施例二

参照图3,示出了根据本发明实施例二的一种视图处理方法的步骤流程图。

本实施例的视图处理方法包括以下步骤:

步骤s202:获取待显示的至少两个视图的信息,以及,承载所述至少两个视图的显示容器的信息。

以android(安卓)操作系统为例,其通过viewpager控件承载视图,进行视图显示切换。

其中,如前所述,获取的待显示的视图的信息可以包括视图的宽度和高度,若待显示的视图的宽度和高度被设置为“match_parent”,则待显示的视图的宽度和高度与viewpager控件中可见的显示区域的宽度和高度相匹配。其中,parent指示父视图。

显示容器的信息包括但不限于显示容器的标识、布局、内容、宽度和高度等。在一种可行方式中,为了能够纵向布局各个待显示的视图,在所述获取待显示的至少两个视图的信息之后,根据所述待显示的至少两个视图的高度和数量,设置所述显示容器的高度,此种高度可以有效适应视图的纵向布局。

步骤s204:按照所述至少两个视图的待显示顺序,将所述至少两个视图在所述显示容器中进行纵向布局,以通过所述显示容器进行所述至少两个视图的纵向切换。

在一种可行方式中,按照所述至少两个视图的待显示顺序,将所述至少两个视图在所述显示容器中进行纵向布局包括:以所述至少两个视图中的一个视图为当前视图,根据其它视图与当前视图的待显示顺序关系,确定其它视图相对于当前视图的纵向位置关系;根据所述纵向位置关系,将所述至少两个视图在所述显示容器中进行纵向布局。例如,以abc三个视图为例,若当前视图为b,设定用户进行上滑操作时,切换为a视图,进行下滑操作时,切换为c视图,则从上至下,三个视图的纵向位置关系依次为a->b->c。当然,在实际应用中,各个待显示的视图的待显示顺序可以根据需求确定,本实施例对此不作限定。

在一种可行方式中,在根据所述纵向位置关系,将所述至少两个视图在所述显示容器中进行纵向布局时,以当前视图的一个顶点为坐标原点,确定其它视图中的每个视图的顶点相对于所述坐标原点的顶点坐标;根据确定的所述顶点坐标,确定每个视图相对于所述显示容器的边界距离;根据所述边界距离,进行所述至少两个视图在所述显示容器中的纵向布局。

假设待显示的视图数量为3个,为了便于描述分别记作待显示的视图a、待显示的视图b和待显示的视图c。待显示的视图a、待显示的视图b和待显示的视图c为顺序显示。则可以从三个视图中确定一个视图为当前视图,例如,待显示的视图b为当前视图,将其布局在显示容器中与可见区域对应的位置处,并确定其左上角的坐标为(0,0)、右下角的坐标为(weight,height)。

之后,根据纵向布局和显示顺序,确定待显示的视图a位于待显示的视图b的上方,根据该纵向位置关系,确定待显示的视图a在显示容器中的左上角坐标为(0,-height)、右下角的坐标为(weight,0)。待显示的视图c位于待显示的视图b的下方,根据该纵向位置关系,确定待显示的视图c在显示容器中的左上角坐标为(0,height)、右下角的坐标为(weight,2height)。

根据确定三个待显示的视图的坐标在显示容器中对待显示的视图进行布局。

具体的布局方式可以根据需求确定,本实施例对此不作限定。例如,以android操作系统为例,可以通过android操作系统中的onlayout方法对各个待显示的视图进行布局。onlayout方法的原函数为onlayout(booleanchanged,intleft,inttop,intright,intbottom),其中,changed为变量名,指示视图布局是否改变;boolean指变量changed的返回值为一布尔值(true或false);left、top、right和bottom均为变量名,int指这些变量的类型为整形。其中,left指示的是视图的左边界与显示容器的左边界的距离,top指示的是视图的上边界与显示容器的上边界的距离,right指示的是视图的右边界与显示容器的右边界的距离,bottom指示的是视图的底边界与显示容器的底边界之间的距离。

待显示的视图a的通过onlayout方法进行纵向布局时,可以设置onlayout方法为:onlayout(booleanchanged,intleft,inttop,intright,intbottom){

a.layout(0,-height,weight,0);}

需要说明的是,在安卓(android)的viewpager中a.layout(0,-height,weight,0)为相对坐标。

待显示的视图b的通过onlayout方法进行纵向布局的方式为:onlayout(booleanchanged,intleft,inttop,intright,intbottom){

b.layout(0,0,weight,height);}.

待显示的视图c的通过onlayout方法进行纵向布局的方式为:onlayout(booleanchanged,intleft,inttop,intright,intbottom){

c.layout(0,height,weight,2height);}

可见,通过设置onlayout函数,将各个视图按纵向排列,并且,通过onlayout方法调节三个待显示的视图相对显示容器的位置,由此,实现了待显示的视图的纵向布局和纵向切换。

基于已布局好的视图,进一步地,还可以可选地进行以下应用操作。

步骤s206:获取视图切换指令。

其中,所述视图切换指令用于指示纵向切换视图。纵向切换指令中还包括切换方向,如向下或向上。在实际应用中,视图切换指令可以是根据用户的上滑、下滑动作生成的切换指令。例如,当用户上滑时,生成切换方向向下的切换指令。当用户下滑时,生成切换方向向上的切换指令。

步骤s208:根据所述切换指令和当前显示的视图的信息,确定并显示待切换的视图。

根据切换指令确定其指示的是向当前显示的视图的下方切换视图还是向上方切换视图,进而以当前显示的视图为基准,确定待切换的视图,进而显示该视图。

例如,当前显示的视图为视图b,切换指令指示向下切换视图(如用户进行了上滑操作),则确定待切换的视图为视图c,并显示该待切换的视图c,以完成视图的纵向切换。类似地,若切换指令指示向上切换视图(如用户进行了下滑操作),则确定待切换的视图为视图a,并显示该待切换的视图a。

可选地,为了提升智能性,若在切换指令所指示的方向上,当前显示的视图已经是最后一张视图,则可以显示一个已经到达边沿的效果,提示用户。该边沿效果可以根据需要确定,本实施例对此不作限定。例如,在android操作系统中,可以通过overscroll方式显示该边沿效果。

该视图处理方法在获取了显示容器和待显示的视图的信息后,根据各个待显示的视图显示顺序在显示容器中对各个待显示的视图进行纵向布局,以使后续可以纵向切换视图,扩展了视图切换场景。

本实施例的视图处理方法可以由任意适当的具有数据处理能力的终端设备执行,包括但不限于:移动终端,如平板电脑、手机,以及台式机等。

实施例三

图4为根据本发明的实施例三的一种视图处理装置的结构框图。如图4所示,视图处理装置包括:信息获取模块401,用于获取待显示的至少两个视图的信息,以及,承载所述至少两个视图的显示容器的信息;第一布局模块402,用于按照所述至少两个视图的待显示顺序,将所述至少两个视图在所述显示容器中进行纵向布局,以通过所述显示容器进行所述至少两个视图的纵向切换。

该视图处理装置在获取了显示容器和待显示的视图的信息后,根据各个待显示的视图显示顺序在显示容器中对各个待显示的视图进行纵向布局,以使后续可以纵向切换视图,扩展了视图切换场景。

实施例四

图5为根据本发明的实施例四的一种视图处理装置的结构框图。如图5所示,视图处理装置包括:信息获取模块501,用于获取待显示的至少两个视图的信息,以及,承载所述至少两个视图的显示容器的信息;第一布局模块502,用于按照所述至少两个视图的待显示顺序,将所述至少两个视图在所述显示容器中进行纵向布局,以通过所述显示容器进行所述至少两个视图的纵向切换。

可选地,所述第一布局模块502包括:第一确定模块5021,用于以所述至少两个视图中的一个视图为当前视图,根据其它视图与当前视图的待显示顺序关系,确定其它视图相对于当前视图的纵向位置关系;视图配置模块5022,用于根据所述纵向位置关系,将所述至少两个视图在所述显示容器中进行纵向布局。

可选地,所述视图配置模块5022包括:坐标确定模块5022a,用于以当前视图的一个顶点为坐标原点,确定其它视图中的每个视图的顶点相对于所述坐标原点的顶点坐标;距离确定模块5022b,用于根据确定的所述顶点坐标,确定每个视图相对于所述显示容器的边界距离;子配置模块5022c,用于根据所述边界距离,进行所述至少两个视图在所述显示容器中的纵向布局。

可选地,所述装置还包括:指令获取模块503,用于获取视图切换指令,其中,所述视图切换指令用于指示纵向切换视图;切换模块504,用于根据所述切换指令和当前显示的视图的信息,确定并显示待切换的视图。

可选地,所述装置还包括:高度设置模块505,用于在所述获取待显示的至少两个视图的信息之后,根据所述待显示的至少两个视图的高度和数量,设置所述显示容器的高度。

该视图处理装置在获取了显示容器和待显示的视图的信息后,根据各个待显示的视图显示顺序在显示容器中对各个待显示的视图进行纵向布局,以使后续可以纵向切换视图,扩展了视图切换场景。

实施例五

参照图6,示出了根据本发明实施例五的一种电子设备的结构示意图。本发明具体实施例并不对电子设备的具体实现做限定。

如图6所示,该电子设备可以包括:处理器(processor)602、通信接口(communicationsinterface)604、存储器(memory)606、以及通信总线608。

其中:

处理器602、通信接口604、以及存储器606通过通信总线608完成相互间的通信。

通信接口604,用于与其它电子设备进行通信。

处理器602,用于执行程序610,具体可以执行上述评论方法实施例中的相关步骤。

具体地,程序610可以包括程序代码,该程序代码包括计算机操作指令。

处理器602可能是中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。

存储器606,用于存放程序610。存储器606可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

程序610具体可以用于使得处理器602执行以下操作:获取待显示的至少两个视图的信息,以及,承载所述至少两个视图的显示容器的信息;按照所述至少两个视图的待显示顺序,将所述至少两个视图在所述显示容器中进行纵向布局,以通过所述显示容器进行所述至少两个视图的纵向切换。

在一种可选的实施方式中,程序610具体还可以用于使得处理器602执行以下操作:以所述至少两个视图中的一个视图为当前视图,根据其它视图与当前视图的待显示顺序关系,确定其它视图相对于当前视图的纵向位置关系;根据所述纵向位置关系,将所述至少两个视图在所述显示容器中进行纵向布局。

在一种可选的实施方式中,程序610具体还可以用于使得处理器602执行以下操作:以当前视图的一个顶点为坐标原点,确定其它视图中的每个视图的顶点相对于所述坐标原点的顶点坐标;根据确定的所述顶点坐标,确定每个视图相对于所述显示容器的边界距离;根据所述边界距离,进行所述至少两个视图在所述显示容器中的纵向布局。

在一种可选的实施方式中,程序610具体还可以用于使得处理器602执行以下操作:获取视图切换指令,其中,所述视图切换指令用于指示纵向切换视图;根据所述切换指令和当前显示的视图的信息,确定并显示待切换的视图。

在一种可选的实施方式中,程序610具体还可以用于使得处理器602执行以下操作:在所述获取待显示的至少两个视图的信息之后,根据所述待显示的至少两个视图的高度和数量,设置所述显示容器的高度。

通过本实施例的电子设备,使得能够在获取了显示容器和待显示的视图的信息后,根据各个待显示的视图显示顺序在显示容器中对各个待显示的视图进行纵向布局,以使后续可以纵向切换视图,扩展了视图切换场景。

需要指出,根据实施的需要,可将本发明实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。

上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如cdrom、ram、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如asic或fpga)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,ram、rom、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的评论方法。此外,当通用计算机访问用于实现在此示出的评论方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的评论方法的专用计算机。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。

以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。

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