CN101566949B - 一种展示控件的装置及方法 - Google Patents
一种展示控件的装置及方法 Download PDFInfo
- Publication number
- CN101566949B CN101566949B CN200910138458A CN200910138458A CN101566949B CN 101566949 B CN101566949 B CN 101566949B CN 200910138458 A CN200910138458 A CN 200910138458A CN 200910138458 A CN200910138458 A CN 200910138458A CN 101566949 B CN101566949 B CN 101566949B
- Authority
- CN
- China
- Prior art keywords
- control
- display module
- container
- arranging
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Controls And Circuits For Display Device (AREA)
Abstract
本发明公开了一种展示控件的装置及方法。该装置包括第一展示模块和第二展示模块;第一展示模块,接收启动指示,按照第一方式展示各个控件,接收转换触发后,向第二展示模块发送展示指示;第二展示模块,接收来自第一展示模块的展示指示后,按照第二方式展示各个控件。该方法包括:接收启动指示,按照第一方式展示各个控件,接收转换触发后,按照第二方式展示各个控件。应用本发明能够通过不同的展示风格展示控件,提高显示空间的利用率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种展示控件的装置及方法。
背景技术
目前,计算机在展示图片、按钮等控件时,只能采用固定的展示风格进行展示,例如,依次展示各个控件,或者,将待展示的所有控件一次性地全部展示给用户。
没有被当前需要显示的内容占用的显示空间可以称为空白空间。实际工作生活中,不同的情况下的显示界面的空白空间的大小是不确定的,而不同的展示风格占用的显示空间通常不同,因此,无论采用哪种固定的展示风格来展示控件,都存在显示空间的利用率较低的问题。比如,假设当前的空白空间较大,而第一展示风格占用的显示空间较小,则如果此时采用第一展示风格展示控件,将有部分空白空间没有被充分利用;再比如,假设当前的空白空间较小,第二展示风格占用的显示空间较大,如果此时采用第二展示风格展示控件,将有其他当前需要显示的内容被覆盖,显示空间的利用率较低。
发明内容
有鉴于此,本发明实施例的目的在于提供一种展示控件的装置及方法,以实现通过不同的展示风格展示控件,从而提高显示空间的利用率。
为达到上述目的,本发明实施例的技术方案具体是这样实现的:
一种展示控件的装置,该装置包括第一展示模块、第二展示模块、缓存模块和同步模块;
第一展示模块,接收启动指示,按照第一方式展示各个控件,接收转换触发后,向第二展示模块发送展示指示;
第二展示模块,接收来自第一展示模块的展示指示后,按照第二方式展示各个控件;
其中,所述第一展示模块和所述第二展示模块通过对第一排布容器进行两次实例化,两次实例化过程中向所述第一排布容器中填充不同的孩子控件,并对孩子控件的参数进行不同的设置得到,所述的孩子控件包括第二排布容器;
所述缓存模块,用于缓存第一展示模块和/或第二展示模块中存储的各个控件数据;
所述同步模块,与缓存模块、第一展示模块和第二展示模块相连,监听第一展示模块和第二展示模块中存储的控件数据是否发生变化;
所述缓存模块每次更新控件数据后,都将更新的控件数据发给第一展示模块和第二展示模块中控件数据没有发生变化的一方,或者,所述同步模块在第一模块或第二模块中存储的控件数据发送变化时,通知缓存模块更新控件数据,并通知第一展示模块和第二展示模块中数据没有发生变化的一方从缓存模块中获取更新的控件数据;
所述第一展示模块和/或第二展示模块中的第二排布容器从缓存模块中获取更新的控件数据并显示相应的控件。
一种展示控件的方法,该方法包括:
接收启动指示,按照第一方式展示各个控件,接收转换触发后,按照第二方式展示各个控件;
其中,通过对第一排布容器进行两次实例化,两次实例化过程中向所述第一排布容器中填充不同的孩子控件,并对孩子控件的参数进行不同的设置,实现按照第一方式展示各个控件和按照第二方式展示各个控件,所述的孩子控件包括第二排布容器;
监听第一展示模块和第二展示模块中存储的控件数据是否发生变化,若是,则缓存更新后的控件数据,并通知第一展示模块和第二展示模块中数据没有发生变化的一方获取更新后的控件数据,或将更新后的控件数据发给第一展示模块和第二展示模块中数据没有发生变化的一方;
所述第二排布容器获取或接收更新的控件数据,并显示相应的控件。
由上述技术方案可见,本发明提供的技术方案在展示控件时,先按照第一方式展示各个控件,接收转换触发后,再按照第二方式展示各个控件,与现有技术相比,能够根据用户的指令通过不同的展示风格展示控件,从而使得用户可以根据当前显示界面的空白空间,选择相应的展示风格来展示控件,从而提高了显示空间的利用率。例如,如果当前显示界面的空白空间较小,则可以选择占用显示空间较小的显示方式,反之,则可以选择占用显示空间较大的显示方式。
附图说明
图1是本发明提供的展示控件的装置的第一结构图。
图2是本发明提供的展示装置中第一展示模块101的详细结构图。
图3是第一展示模块101的层次结构图。
图4是本发明提供的展示装置中第二展示模块102的详细结构图。
图5是第二展示模块102的层次结构图。
图6是本发明提供的展示控件的装置的第二结构图。
图7是利用本发明提供的展示控件的装置中的第一展示模块101展示皮肤安装包图片的效果图。
图8是利用本发明提供的展示控件的装置中的第二展示模块102展示皮肤安装包图片的效果图。
图9是本发明提供的展示控件的方法流程图。
图10是接收启动指示并创建第一展示模块的流程图。
图11是弹出第二展示模块的流程图。
图12是第二展示模块隐藏后重新显示第一展示模块的处理流程图。
图13是实现第一展示模块和第二展示模块的展示效果同步的流程图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本发明提供的展示控件的装置包括展示模块,用于接收启动指示,按照第一方式展示各个控件,接收转换触发后,按照第二方式展示各个控件。
图1是本发明提供的展示控件的装置的第一结构图,如图1所示,该装置包括第一展示模块101和第二展示模块102。
第一展示模块101,接收启动指示,按照第一方式展示各个控件,接收转换触发后,向第二展示模块102发送展示指示。
第二展示模块102,接收来自第一展示模块101的展示指示后,按照第二方式展示各个控件。
其中,第一展示模块101,接收启动指示,按照各个控件被压入第一展示模块101的顺序存储所述各个控件,设置显示控件的窗口高度,接收上翻触发和/或下翻触发,根据所述窗口高度以及上翻触发和/或下翻触发,显示相应存储位置的控件,接收转换触发,向第二展示模块102发送展示指示。第一展示模块101也可称为内嵌窗口模块。
第二展示模块102,按照各个控件被压入第二展示模块102的顺序存储所述各个控件,设置显示控件的窗口高度,判断该窗口高度是否大于该第二排布容器存储的控件行数,若是,显示存储的所有控件,若否,显示滚动条,根据接收的滚动触发以及所述窗口高度显示相应存储位置的控件。第二展示模块102也可称为下拉窗口模块。
图2是本发明提供的展示装置中第一展示模块101的详细结构图,如图2所示,第一展示模块101包括第一排布容器1011、第二排布容器1012、转换模块1013、滚动条工具栏1014、上翻页按钮1015和下翻页按钮1016。
第一排布容器1011,用于对第二排布容器1012、转换模块1013、滚动条工具栏1014、上翻页按钮1015和下翻页按钮1016进行布局控制。
第二排布容器1012,用于按照各个控件被压入该第二排布容器1012的顺序存储所述各个控件,接收上翻页按钮1015发来的上翻指示和/或下翻页按钮1016发来的下翻指示,根据滚动条工具栏1014设置的窗口高度,以及接收的上翻指示和/或下翻指示,显示相应存储位置的控件。
滚动条工具栏1014,用于设置第二排布容器1012显示控件的窗口高度。
上翻页按钮1015,用于接收上翻触发,向第二排布容器1012发送上翻指示。
下翻页按钮1016,用于接收下翻触发,向第二排布容器1012发送下翻指示。
转换模块1013,用于接收转换触发,向第二展示模块102发送展示指示。
图3是第一展示模块101的层次结构图,其示出了第一展示模块101各组成部分的层次关系。
如图3所示,在第一排布容器1011中布局有第二排布容器1012、转换模块1013、滚动条工具栏1014、上翻页按钮1015和下翻页按钮1016。滚动条工具栏1014用于对第二排布容器1012中存储的控件进行滚动控制,并设置第二排布容器1012显示控件的窗口高度,通常该窗口高度小于第二排布容器1012中存储的控件行数,为节省显示空间,一般取为1行。各个待显示的控件被压入到第二排布容器1012中。
图4是本发明提供的展示装置中第二展示模块102的详细结构图,如图4所示,第二展示模块102包括第一排布容器1021、第二排布容器1022、滚动条工具栏1023和浮动窗口1024。
第一排布容器1021,用于对第二排布容器1022和滚动条工具栏1023进行布局控制。
第二排布容器1022,用于按照各个控件被压入该第二排布容器1022的顺序存储所述各个控件,接收滚动条工具栏1023发来的大于指示,显示存储的所有控件,或者,接收滚动条工具栏1023发来的小于指示和滚动位置指示,根据所述滚动位置和滚动条工具栏1023设置的窗口高度显示相应存储位置的控件;
滚动条工具栏1023,用于设置第二排布容器1022显示控件的窗口高度,判断该窗口高度是否大于该第二排布容器1022存储的控件行数,若是,向该第二排布容器1022发送大于指示,否则向该排布容器1022发送小于指示并显示滚动条,根据接收的滚动触发向第二排布容器1022发送滚动位置指示。
浮动窗口1024,用于显示第二排布容器1022所要显示的控件。
图5是第二展示模块102的层次结构图,其示出了第二展示模块102各组成部分的层次关系。
如图5所示,在第一排布容器1021中布局有第二排布容器1022和滚动条工具栏1023,第一排布容器1021、第二排布容器1022和滚动条工具栏1023均通过浮动窗口1024进行显示。
以上所述的滚动条工具栏可以采用类MFC的Scroll bar实现。如果第一排布容器中除所述滚动条工具栏以外的模块被删除,则所述滚动条工具栏将撑满整个第一容器。
第二排布容器1012和第二排布容器1022都可以突出显示当前被选中的控件。
第一展示模块101和/或第二展示模块102还可以进一步包括键盘操作模块。
所述键盘操作模块,用于接收键盘输入,根据第二排布容器每行最多显示的控件个数将接收的键盘输入键值转换为整形变量,根据该整形变量和接收所述键盘输入前被选中控件的存储位置计算当前被选中控件的存储位置,将当前被选中控件的存储位置发给第二排布容器。第二排布容器根据该存储位置突出显示当前被选中的控件。
其中,将接收的键盘输入键值转换为整形变量,根据该整形变量和接收所述键盘输入前被选中控件的存储位置计算当前被选中控件的存储位置包括:
如果键盘输入键值是向上,则将接收所述键盘输入前被选中控件的存储位置减去每行最多显示的控件个数,即,将“向上”这一键值转换为“每行最多显示的控件个数的相反数”这一整形变量,再将接收所述键盘输入前被选中控件的存储位置与所述整形变量相加,所得结果为当前被选中控件的存储位置;如果键盘输入键值是向下,则将接收所述键盘输入前被选中控件的存储位置加上每行最多显示的控件个数,即,将“向下”这一键值转换为“每行最多显示的控件个数”这一整形变量,所得结果为当前被选中控件的存储位置;如果键盘输入键值是向左,则将接收所述键盘输入前被选中控件的存储位置减去1,即,将“向左”这一键值转换为“-1”这一整形变量,所得结果为当前被选中控件的存储位置;如果键盘输入键值是向右,则将接收所述键盘输入前被选中控件的存储位置加上1,即,将“向右”这一键值转换为“1”这一整形变量,所得结果为当前被选中控件的存储位置。
为了实现不同展示风格所展示的效果达到同步,即,如果采用某种风格展示控件过程中,对控件数据进行了修改,则在转换为另一种风格展示控件时,应该根据修改后的控件数据采用所述另一种风格进行控件展示,为此,本发明提供了又一展示装置的实施例。
图6是本发明提供的展示控件的装置的第二结构图。图6所示装置在图1至图5中任一图所示的装置基础上,进一步包括了缓存模块601和同步模块602。
缓存模块601,用于缓存第一展示模块101和/或第二展示模块102中存储的各个控件数据,并根据同步模块602的通知,实时更新控件数据。
同步模块602,与缓存模块601、第一展示模块101和第二展示模块102相连,监听第一展示模块101和第二展示模块102中存储的控件数据是否发生变化,若是,则通知缓存模块601更新控件数据,并通知第一展示模块101和第二展示模块102中数据没有发生变化的一方从缓存模块601中获取更新的控件数据。
第一展示模块101和/或第二展示模块102从缓存模块601中获取控件数据并显示相应的控件。
或者,缓存模块601,用于缓存第一展示模块101和/或第二展示模块102中存储的各个控件数据,每次更新控件数据后,都将更新的控件数据发给第一展示模块101和/或第二展示模块102中控件数据没有发生变化的一方。
同步模块602,与缓存模块601、第一展示模块101和第二展示模块102相连,监听第一展示模块101和第二展示模块102中的控件数据是否发生变化,若是,则通知缓存模块601更新控件数据。
第一展示模块101和/或第二展示模块102接收缓存模块601发来的控件数据,并显示相应的控件。
上述的各个展示控件的装置中,第一展示模块101和第二展示模块102在同一时刻一方处于显示状态,另一方处于隐藏状态。
上述的各个展示控件的装置中,所展示的控件可以是图片、按钮等适于进行展示的控件或控件的组合。
上述的各个展示控件的装置可以在多种场景下应用,下面以即时通讯场景为例,具体介绍其应用方法。
当前的即时通讯客户端为用户提供了更换皮肤和/或背景图片的功能,目前,即时通讯客户端从服务器端拉取皮肤安装包的名称和/或背景图片的名称等文字信息,将拉取的文字信息显示给用户,用户根据该文字信息选择皮肤安装包和/或背景图片,显然,这种更换皮肤和/或背景图片的方法不够直观。
本发明提出,由即时通讯客户端从服务器端拉取皮肤安装包的主题皮肤图片和/或背景图片,通过本发明提供的展示控件的装置或方法,来展示拉取的图片,根据用户选中图片并确认应用该图片对应的皮肤安装包或确认将该图片应用为背景图片的触发,更新即时通讯客户端的皮肤和/或背景图片。所述的主题皮肤图片是相应皮肤按照包的预览图。
上述展示控件的装置中的展示模块与即时通讯客户端的主面板皮肤工具栏或者皮肤设置中心相连,通过主面板皮肤工具栏或者皮肤设置中心接收启动指示。
在展示皮肤安装包图片的应用背景下,展示模块中的第二排布容器还可以进一步划分为***皮肤模块、自定义皮肤模块和推荐皮肤模块。
所述***皮肤模块,存储并显示***默认皮肤安装包的主题皮肤图片。
所述自定义皮肤模块,存储并显示已经下载到本地的皮肤安装包的主题皮肤图片。
所述推荐皮肤模块,存储并显示尚未下载到本地的皮肤安装包的主题皮肤图片。
如果用户选中图片并确认启用该选中图片对应的皮肤安装包,则如果该主题皮肤图片位于自定义皮肤模块中,直接安装并启用相应皮肤安装包,如果该主题皮肤图片位于推荐皮肤模块中,先下载相应皮肤安装包再安装并启用所述皮肤安装包。
图7是利用本发明提供的展示控件的装置中的第一展示模块101展示皮肤安装包的主题皮肤图片的效果图。
如图7所示,展示控件的装置(即图7中“皮肤管理”下面的用于展示第一行图片的装置)通过皮肤设置中心(即框选的“皮肤”)来启用。
图7中,第一展示模块101中的滚动条工具栏1014设置的显示窗口高度是1行,第二排布容器1012中每行存储4个主题皮肤图片,图7中第1行图片中右侧位于最上方的向上的单箭头为上翻页按钮1015、位于中间的向下的单箭头为下翻页按钮1016、位于最下方的向下的带有横线的箭头是转换模块1013。
假设第二排布容器1012中存储有3行图片,当前显示的是第1行主题皮肤图片,则上翻页按钮1015灰选,即当前不可用,如果下翻页按钮1016接收到用户点击,即接收到下翻触发,则向第二排布容器1012发送下翻指示,第二排布容器1012根据该下翻指示显示第2行主题皮肤图片;如果当前显示的是第3行主题皮肤图片,则下翻页按钮1016灰选,即当前不可用,如果上翻页按钮1015接收到用户点击,即接收到上翻触发,则向第二排布容器1012发送上翻指示,第二排布容器1012根据该上翻指示显示第2行主题皮肤图片。
当转换模块1013接收到用户点击,即接收到转换触发时,如果这是第一展示模块101被创建后、转换模块1013首次接收到转换触发,则开始创建第二展示模块102,如果不是首次接收到转换触发,则显示已经创建的第二展示模块102。
图8是利用本发明提供的展示控件的装置中的第二展示模块102展示皮肤安装包的主题皮肤图片的效果图。
参见图8,第二展示模块102以浮动窗口形式展示图片,第二展示模块102中的滚动条工具栏1023设置的显示窗口高度是3行,由于第二排布容器1022中一共仅有3行主题皮肤图片,因此右侧没有出现滚动条,如果滚动条工具栏1023设置的显示窗口高度是2行,则右侧将出现滚动条,当用户拖动该滚动条时,滚动条工具栏1023根据用户的拖动操作向第二排布容器1022发送相应的滚动位置指示,第二排布容器1022根据该滚动位置指示更新当前处于显示窗口中的主题皮肤图片。
无论是第一展示模块101还是第二展示模块102都支持键盘操作,即通过键盘来选中主题皮肤图片,第一展示模块101和第二展示模块102可以突出显示当前选中的主题皮肤图片,然后根据键盘输入,将相应输入键值转换为整形变量,根据该整形变量计算下一次需要显示的主题皮肤图片的存储位置(即存储空间的地址),突出显示相应存储位置上的主题皮肤图片。
在同一时刻,第一展示模块101和第二展示模块102一方处于显示状态,另一方处于隐藏状态。
由于第二展示模块102以浮动窗口形式展示主题皮肤图片,因此,根据浮动窗口的特性,一旦第二展示模块102被启用,则如果当前焦点在浮动窗口上,第二展示模块102处于显示状态,否则,第一展示模块101处于显示状态。当然,第二展示模块102也可采用其他窗口形式展示图片,这种情况下,可在第二展示模块102中添加转换模块,如果该转换模块接收到转换触发,则将第二展示模块102隐藏,使得第一展示模块101处于显示状态。
还可以对图7和图8中的第二排布容器进一步细分,以区分各个皮肤安装包的不同存储状态,从而根据相应的存储状态进行后续操作。具体地,第二排布容器可以分为***皮肤模块、自定义皮肤模块和推荐皮肤模块,所述***皮肤模块,存储并显示***默认皮肤安装包的主题皮肤图片,所述自定义皮肤模块,存储并显示已经下载到本地的皮肤安装包的主题皮肤图片,所述推荐皮肤模块,存储并显示尚未下载到本地的皮肤安装包的主题皮肤图片。如果用户选中主题皮肤图片并确认启用该选中主题皮肤图片对应的皮肤安装包,则如果该主题皮肤图片位于自定义皮肤模块中,直接安装并启用相应皮肤安装包,如果该主题皮肤图片位于推荐皮肤模块中,先下载相应皮肤安装包再安装并启用所述皮肤安装包。
其中,***皮肤模块中的主题皮肤图片是不可删除的,自定义皮肤模块和推荐皮肤模块中的主题皮肤图片是可以删除的,推荐皮肤模块中的主题皮肤图片带有突出显示标识,例如带有“荐”字标识。
当光标移动到某一主题皮肤图片上时,还可以突出显示该主题皮肤图片和/或显示该主题皮肤图片相关的信息,例如主题名称、安装包大小等。
本发明中的第一展示模块101和第二展示模块102实际上可以通过对一个对象进行两次实例化得到,即,对第一排布容器进行两次实例化,两次实例化过程中向第一排布容器中填充不同的孩子控件,并对孩子控件的参数进行不同的设置,其中,第一排布容器是填充式的排布容器,所述的孩子控件例如可以是第二排布容器、上翻页按钮、下翻页按钮、转换模块、滚动条工具栏等,所述的参数例如可以是滚动条工具栏中设置的显示窗口高度。
图9是本发明提供的展示控件的方法流程图,如图9所示,该方法包括:
步骤901,接收启动指示。
步骤902,按照第一方式展示各个控件。
本步骤中,创建第一展示模块,将各个待展示的控件压入第一展示模块,按照各个控件被压入该第一展示模块的顺序存储所述各个控件,设置显示控件的窗口高度,接收上翻触发和/或下翻触发,根据所述窗口高度以及上翻触发和/或下翻触发,显示相应存储位置的控件。
具体地,创建第一展示模块包括:
创建第一排布容器、第二排布容器、转换模块、滚动条工具栏、上翻页按钮和下翻页按钮;
通过第一排布容器对第二排布容器、转换模块、滚动条工具栏、上翻页按钮和下翻页按钮进行布局控制;
由第二排布容器按照各个控件被压入该第二排布容器的顺序存储所述各个控件,接收上翻页按钮发来的上翻指示和/或下翻页按钮发来的下翻指示,根据滚动条工具栏设置的窗口高度,以及接收的上翻指示和/或下翻指示,显示相应存储位置的控件;
通过滚动条工具栏设置第二排布容器显示控件的窗口高度;
通过上翻页按钮接收上翻触发,向第二排布容器发送上翻指示;
通过下翻页按钮接收下翻触发,向第二排布容器发送下翻指示;
通过转换模块接收转换触发。
步骤903,接收转换触发。
步骤904,按照第二方式展示各个控件。
本步骤中,创建第二展示模块,将各个待展示的控件压入第二展示模块,按照各个控件被压入该第二展示模块的顺序存储所述各个控件,设置显示控件的窗口高度,判断该窗口高度是否大于该第二排布容器存储的控件行数,若是,显示存储的所有控件,若否,显示滚动条,根据接收的滚动触发以及所述窗口高度显示相应存储位置的控件。
具体地,创建第二展示模块包括:
创建第一排布容器、第二排布容器、滚动条工具栏和浮动窗口;
通过第一排布容器对第二排布容器、滚动条工具栏和浮动窗口进行布局控制;
设置第二排布容器的存储空间大小,由第二排布容器按照各个控件被压入该第二排布容器的顺序存储所述各个控件,接收滚动条工具栏发来的大于指示,显示存储的所有控件,或者,接收滚动条工具栏发来的小于指示和滚动位置指示,根据所述滚动位置和滚动条工具栏设置的窗口高度显示相应存储位置的控件;
通过滚动条工具栏设置第二排布容器显示控件的窗口高度,判断该窗口高度是否大于该第二排布容器存储的控件行数,若是,向该第二排布容器发送大于指示,否则向该排布容器发送小于指示并显示滚动条,根据接收的滚动触发向第二排布容器发送滚动位置指示;
通过浮动窗口显示所述第二排布容器所要显示的各个控件。
下面以在即时通讯客户端展示皮肤安装包的图片为例,对图9所示方法进行介绍。
图10是接收启动指示并创建第一展示模块的流程图,如图10所示,该流程包括:
步骤1001,通过皮肤设置中心接收启动指示。
本步骤中,所述启动指示是展示皮肤安装包图片的确认触发。
步骤1002,从数据存储中心获取相关图片信息,并将该图片信息缓存在主题皮肤管理中心。
步骤1003,创建第一展示模块。
步骤1004,从主题皮肤管理中心获取缓存的图片信息并创建相应的主题预览图,将创建的主题预览图压入第二排布容器中。
步骤1005,第一展示模块监听按钮事件等用户的操作,并进行相应的处理。
本步骤中的按钮事件包括点击上翻页按钮、下翻页按钮、转换模块等,其他的用户操作例如有通过键盘或鼠标选中某图片。
图11是弹出第二展示模块的流程图,如图11所示,该流程包括:
步骤1101,第一展示模块接收用户点击转换模块的命令。
步骤1102,第一展示模块判断是否是首次接收到所述命令,如果是,执行步骤1103,否则,执行步骤1104。
步骤1103,创建第二展示模块。
步骤1104,设置浮动窗口的当前焦点位置。
步骤1105,从主题皮肤管理中心获取缓存的主题图片信息,并创建相应的主题预览图,将创建的主题预览图压入第二排布容器中。
步骤1106,监听用户操作并进行相应的处理。
本步骤中,根据当前的焦点位置进行浮动窗口的显示或隐藏,并相应地隐藏或显示第一展示模块。
图12是第二展示模块隐藏后重新显示第一展示模块的处理流程图,如图12所示,该流程包括:
步骤1201,隐藏第二展示模块。
步骤1202,显示第一展示模块。
步骤1203,第一展示模块中的第二排布容器查找当前选中的主题预览图。
皮肤设置管理中心缓存的数据中包含当前选中信息,即当前哪一图片处于选中状态,第一展示模块从该中心获知哪一主题预览图处于选中状态。
步骤1204,第二排布容器显示当前选中的主题预览图,上翻页按钮和下翻页按钮根据当前主题皮肤的个数以及当前位置确定自身的灰选情况。
图13是实现第一展示模块和第二展示模块的展示效果同步的流程图,如图13所示,该流程包括:
步骤1301,通过自定义事件监听模块监听第一展示模块和第二展示模块中哪一方需要展示的控件数据发生了变化,缓存并更新控件数据。
步骤1302,通过自定义事件发送模块将控件数据发生变化的消息通知给另一方,或者通过自定义事件发送模块将更新的控件数据发给另一方
步骤1303,所述另一方直接接收控件数据,或者根据接收的所述消息获取控件数据,并更新自身存储的控件数据。
本步骤中,所述另一方同时监听自身的各种用户操作,并进行相应的处理。例如,第一展示模块监听上翻页触发或下翻页触发并进行相应的上翻处理或下翻处理。
由上述技术方案可见,本发明提供的技术方案在展示控件时,先按照第一方式展示各个控件,接收转换触发后,再按照第二方式展示各个控件,与现有技术相比,能够通过不同的展示风格展示控件,从而提高了用户体验和显示空间利用率。
进一步地,本发明通过缓存控件数据,并实时更新当前展示的控件数据,使得通过不同的展示风格展示控件时,所产生的展示效果是同步的。
再进一步地,给出了本发明提供的展示方法和装置在即时通讯领域的具体应用方法,能够解决即时通讯客户端更换皮肤时如何展示主题图片的问题。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (22)
1.一种展示控件的装置,其特征在于,该装置包括第一展示模块、第二展示模块、缓存模块和同步模块;
第一展示模块,接收启动指示,按照第一方式展示各个控件,接收转换触发后,向第二展示模块发送展示指示;
第二展示模块,接收来自第一展示模块的展示指示后,按照第二方式展示各个控件;
其中,所述第一展示模块和所述第二展示模块通过对第一排布容器进行两次实例化,两次实例化过程中向所述第一排布容器中填充不同的孩子控件,并对孩子控件的参数进行不同的设置得到,所述的孩子控件包括第二排布容器;
所述缓存模块,用于缓存第一展示模块和/或第二展示模块中存储的各个控件数据;
所述同步模块,与缓存模块、第一展示模块和第二展示模块相连,监听第一展示模块和第二展示模块中存储的控件数据是否发生变化;
所述缓存模块每次更新控件数据后,都将更新的控件数据发给第一展示模块和第二展示模块中控件数据没有发生变化的一方,或者,所述同步模块在第一模块或第二模块中存储的控件数据发送变化时,通知缓存模块更新控件数据,并通知第一展示模块和第二展示模块中数据没有发生变化的一方从缓存模块中获取更新的控件数据;
所述第一展示模块和/或第二展示模块中的第二排布容器从缓存模块中获取更新的控件数据并显示相应的控件。
2.如权利要求1所述的装置,其特征在于,
所述第一展示模块,接收启动指示,按照各个控件被压入该第一展示模块的顺序存储所述各个控件,设置显示控件的窗口高度,接收上翻触发和/或下翻触发,根据所述窗口高度以及上翻触发和/或下翻触发,在所述高度的窗口内显示相应存储位置的控件,接收转换触发,向第二展示模块发送展示指示。
3.如权利要求1所述的装置,其特征在于,
所述第二展示模块,接收展示指示,按照各个控件被压入该第二展示模块的顺序存储所述各个控件,设置显示控件的窗口高度,判断该窗口高度是否大于该第二展示模块存储的控件行数,若是,显示存储的所有控件,若否,显示滚动条,接收滚动触发,根据所述滚动触发以及所述窗口高度,在所述高度的窗口内显示相应存储位置的控件。
4.如权利要求2所述的装置,其特征在于,所述第一展示模块包括第一排布容器、第二排布容器、转换模块、滚动条工具栏、上翻页按钮和下翻页按钮;
所述第一排布容器,用于对第二排布容器、转换模块、滚动条工具栏、上翻页按钮和下翻页按钮进行布局控制;
所述第二排布容器,用于按照各个控件被压入该第二排布容器的顺序存储所述各个控件,接收上翻页按钮发来的上翻指示和/或下翻页按钮发来的下翻指示,根据滚动条工具栏设置的窗口高度,以及接收的上翻指示和/或下翻指示,显示相应存储位置的控件;
所述滚动条工具栏,用于设置第二排布容器显示控件的窗口高度;
所述上翻页按钮,用于接收上翻触发,向第二排布容器发送上翻指示;
所述下翻页按钮,用于接收下翻触发,向第二排布容器发送下翻指示;
所述转换模块,用于接收转换触发,向第二展示模块发送展示指示。
5.如权利要求3所述的装置,其特征在于,所述第二展示模块包括第一排布容器、第二排布容器、滚动条工具栏和浮动窗口;
所述第一排布容器,用于对第二排布容器和滚动条工具栏进行布局控制;
所述第二排布容器,用于按照各个控件被压入该第二排布容器的顺序存储所述各个控件,接收滚动条工具栏发来的大于指示,显示存储的所有控件,或者,接收滚动条工具栏发来的小于指示和滚动位置指示,根据所述滚动位置和滚动条工具栏设置的窗口高度显示相应存储位置的控件;
所述滚动条工具栏,用于设置第二排布容器显示控件的窗口高度,判断该窗口高度是否大于该第二排布容器存储的控件行数,若是,向该第二排布容器发送大于指示,否则向该排布容器发送小于指示并显示滚动条,根据接收的滚动触发向第二排布容器发送滚动位置指示;
所述浮动窗口,用于显示所述第二排布容器所要显示的控件。
6.如权利要求4或5所述的装置,其特征在于,
所述第二排布容器,突出显示当前被选中的控件;
所述第二展示模块进一步包括键盘操作模块;
所述键盘操作模块,用于接收键盘输入,根据第二排布容器每行最多显示的控件个数将接收的键盘输入键值转换为整形变量,根据该整形变量和接收所述键盘输入前被选中控件的存储位置计算当前被选中控件的存储位置,将当前被选中控件的存储位置发给第二排布容器。
7.如权利要求6所述的装置,其特征在于,所述将接收的键盘输入键值转换为整形变量,根据该整形变量和接收所述键盘输入前被选中控件的存储位置计算当前被选中控件的存储位置包括:
如果键盘输入键值是向上,则将接收所述键盘输入前被选中控件的存储位置减去每行最多显示的控件个数,所得结果为当前被选中控件的存储位置;如果键盘输入键值是向下,则将接收所述键盘输入前被选中控件的存储位置加上每行最多显示的控件个数,所得结果为当前被选中控件的存储位置;如果键盘输入键值是向左,则将接收所述键盘输入前被选中控件的存储位置减去1,所得结果为当前被选中控件的存储位置;如果键盘输入键值是向右,则将接收所述键盘输入前被选中控件的存储位置加上1,所得结果为当前被选中控件的存储位置。
8.如权利要求1所述的装置,其特征在于,
所述第一展示模块和第二展示模块在同一时刻一方处于显示状态,另一方处于隐藏状态。
9.如权利要求2~5或7~8中任一权利要求所述的装置,其特征在于,展示的控件是图片。
10.如权利要求9所述的装置,其特征在于,
所述第一展示模块与即时通讯客户端的主面板皮肤工具栏或者皮肤设置中心相连,通过主面板皮肤工具栏或者皮肤设置中心接收启动指示。
11.如权利要求4或5所述的装置,其特征在于,所述第二排布容器包括***皮肤模块、自定义皮肤模块和推荐皮肤模块;
所述***皮肤模块,存储并显示***默认皮肤安装包的主题皮肤图片;
所述自定义皮肤模块,存储并显示已经下载到本地的皮肤安装包的主题皮肤图片;
所述推荐皮肤模块,存储并显示尚未下载到本地的皮肤安装包的主题皮肤图片。
12.如权利要求11所述的装置,其特征在于,
所述自定义皮肤模块,接收到用户选中主题皮肤图片并确认启用该选中主题皮肤图片对应的皮肤安装包的命令后,直接安装并启用相应皮肤安装包;
所述推荐皮肤模块,接收到用户选中主题皮肤图片并确认启用该选中主题皮肤图片对应的皮肤安装包的命令后,先下载相应皮肤安装包再安装并启用所述皮肤安装包。
13.一种展示控件的方法,其特征在于,该方法包括:
接收启动指示,按照第一方式展示各个控件,接收转换触发后,按照第二方式展示各个控件;
其中,通过对第一排布容器进行两次实例化,两次实例化过程中向所述第一排布容器中填充不同的孩子控件,并对孩子控件的参数进行不同的设置,实现按照第一方式展示各个控件和按照第二方式展示各个控件,所述的孩子控件包括第二排布容器;
监听第一展示模块和第二展示模块中存储的控件数据是否发生变化,若是,则缓存更新后的控件数据,并通知第一展示模块和第二展示模块中数据没有发生变化的一方获取更新后的控件数据,或将更新后的控件数据发给第一展示模块和第二展示模块中数据没有发生变化的一方;
所述第二排布容器获取或接收更新的控件数据,并显示相应的控件。
14.如权利要求13所述的方法,其特征在于,所述按照第一方式展示各个控件包括:
创建第一展示模块,将各个待展示的控件压入第一展示模块,按照各个控件被压入该第一展示模块的顺序存储所述各个控件,设置显示控件的窗口高度,接收上翻触发和/或下翻触发,根据所述窗口高度以及上翻触发和/或下翻触发,在所述高度的窗口内显示相应存储位置的控件。
15.如权利要求13所述的方法,其特征在于,所述按照第二方式展示各个控件包括:
创建第二展示模块,将各个待展示的控件压入第二展示模块,按照各个控件被压入该第二展示模块的顺序存储所述各个控件,设置显示控件的窗口高度,判断该窗口高度是否大于该第二展示模块存储的控件行数,若是,显示存储的所有控件,若否,显示滚动条,根据接收的滚动触发以及所述窗口高度显示相应存储位置的控件。
16.如权利要求14所述的方法,其特征在于,所述创建第一展示模块包括:
实例化第一排布容器,所述孩子控件包括第二排布容器、转换模块、滚动条工具栏、上翻页按钮和下翻页按钮;
通过第一排布容器对第二排布容器、转换模块、滚动条工具栏、上翻页按钮和下翻页按钮进行布局控制;
由第二排布容器按照各个控件被压入该第二排布容器的顺序存储所述各个控件,接收上翻页按钮发来的上翻指示和/或下翻页按钮发来的下翻指示,根据滚动条工具栏设置的窗口高度,以及接收的上翻指示和/或下翻指示,显示相应存储位置的控件;
通过滚动条工具栏设置第二排布容器显示控件的窗口高度;
通过上翻页按钮接收上翻触发,向第二排布容器发送上翻指示;
通过下翻页按钮接收下翻触发,向第二排布容器发送下翻指示;
通过转换模块接收转换触发。
17.如权利要求15所述的方法,其特征在于,所述创建第二展示模块包括:
实例化第一排布容器,所述孩子控件包括第二排布容器、滚动条工具栏和浮动窗口;
通过第一排布容器对第二排布容器、滚动条工具栏和浮动窗口进行布局控制;
由第二排布容器按照各个控件被压入该第二排布容器的顺序存储所述各个控件,接收滚动条工具栏发来的大于指示,显示存储的所有控件,或者,接收滚动条工具栏发来的小于指示和滚动位置指示,根据所述滚动位置和滚动条工具栏设置的窗口高度显示相应存储位置的控件;
通过滚动条工具栏设置第二排布容器显示控件的窗口高度,判断该窗口高度是否大于该第二排布容器存储的控件行数,若是,向该第二排布容器发送大于指示,否则向该排布容器发送小于指示并显示滚动条,根据接收的滚动触发向第二排布容器发送滚动位置指示;
通过浮动窗口显示所述第二排布容器所要显示的各个控件。
18.如权利要求16或17所述的方法,其特征在于,该方法进一步包括:
接收键盘输入,根据第二排布容器每行最多显示的控件个数将接收的键盘输入键值转换为整形变量,根据该整形变量和接收所述键盘输入前被选中控件的存储位置计算当前被选中控件的存储位置,突出显示该存储位置上的控件。
19.如权利要求18所述的方法,其特征在于,所述将接收的键盘输入键值转换为整形变量,根据该整形变量和接收所述键盘输入前被选中控件的存储位置计算当前被选中控件的存储位置包括:
如果键盘输入键值是向上,则将接收所述键盘输入前被选中控件的存储位置减去每行最多显示的控件个数,所得结果为当前被选中控件的存储位置;如果键盘输入键值是向下,则将接收所述键盘输入前被选中控件的存储位置加上每行最多显示的控件个数,所得结果为当前被选中控件的存储位置;如果键盘输入键值是向左,则将接收所述键盘输入前被选中控件的存储位置减去1,所得结果为当前被选中控件的存储位置;如果键盘输入键值是向右,则将接收所述键盘输入前被选中控件的存储位置加上1,所得结果为当前被选中控件的存储位置。
20.如权利要求16或17所述的方法,其特征在于,
监听第一展示模块和第二展示模块的显示状态,在同一时刻只显示二者其中之一。
21.如权利要求20所述的方法,其特征在于,所述监听第一展示模块和第二展示模块的显示状态包括:
如果当前焦点在浮动窗口上,则第二展示模块处于显示状态,否则第一展示模块处于显示状态。
22.如权利要求21所述的方法,其特征在于,记录当前选中的控件的存储位置,第一展示模块和/或第二展示模块根据当前选中的控件的存储位置,显示当前选中的控件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910138458A CN101566949B (zh) | 2009-05-18 | 2009-05-18 | 一种展示控件的装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910138458A CN101566949B (zh) | 2009-05-18 | 2009-05-18 | 一种展示控件的装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101566949A CN101566949A (zh) | 2009-10-28 |
CN101566949B true CN101566949B (zh) | 2012-10-10 |
Family
ID=41283113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910138458A Active CN101566949B (zh) | 2009-05-18 | 2009-05-18 | 一种展示控件的装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101566949B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102446097B (zh) * | 2011-09-29 | 2015-02-04 | 奇智软件(北京)有限公司 | 一种更换用户界面的皮肤的方法 |
CN103488489B (zh) * | 2013-09-30 | 2017-02-01 | 乐视网信息技术(北京)股份有限公司 | 一种数据处理方法及装置 |
CN103617036B (zh) * | 2013-11-27 | 2017-11-14 | 小米科技有限责任公司 | 一种显示插件的方法、装置及终端设备 |
CN105159526B (zh) * | 2015-08-25 | 2018-09-11 | 网易(杭州)网络有限公司 | 一种游戏界面中虚拟物品的展示控制方法及装置 |
CN106708380A (zh) * | 2015-11-13 | 2017-05-24 | 百度在线网络技术(北京)有限公司 | 背景图像设置方法和装置 |
CN105912314A (zh) * | 2015-12-28 | 2016-08-31 | 乐视致新电子科技(天津)有限公司 | 用户界面控件的布局方法及***、控制方法及*** |
CN108073434B (zh) * | 2016-11-15 | 2021-02-09 | 深圳联友科技有限公司 | 一种js绘图控制方法以及*** |
CN107343019B (zh) * | 2017-03-29 | 2020-04-24 | 宁波方太厨具有限公司 | 一种通信数据的动态刷新方法 |
CN108563481B (zh) * | 2018-04-09 | 2021-12-24 | 阿里巴巴(中国)有限公司 | 皮肤实时修改预览的方法、设备及装置 |
CN109257643B (zh) * | 2018-08-27 | 2021-07-23 | 武汉斗鱼网络科技有限公司 | 一种直播间展示方法、终端设备及存储介质 |
CN109308149A (zh) * | 2018-10-12 | 2019-02-05 | 北京潘达互娱科技有限公司 | 一种控制多个对象在图形用户界面中的移动的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1337619A (zh) * | 2000-06-23 | 2002-02-27 | 国际商业机器公司 | 自动缩放图标以适合数据处理***内的一个显示区 |
WO2003104964A2 (en) * | 2002-06-06 | 2003-12-18 | Sony Ericsson Mobile Communications Ab | Graphical user interface for expandable menus |
JP2005004419A (ja) * | 2003-06-11 | 2005-01-06 | Fuji Photo Film Co Ltd | ファイル閲覧装置及び方法並びにプログラム |
CN1661520A (zh) * | 2004-02-24 | 2005-08-31 | 株式会社康耐克 | 问题解决辅助装置以及程序 |
WO2007059503A1 (en) * | 2005-11-15 | 2007-05-24 | Google Inc. | Displaying compact and expanded data items |
US7444599B1 (en) * | 2002-03-14 | 2008-10-28 | Apple Inc. | Method and apparatus for controlling a display of a data processing system |
-
2009
- 2009-05-18 CN CN200910138458A patent/CN101566949B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1337619A (zh) * | 2000-06-23 | 2002-02-27 | 国际商业机器公司 | 自动缩放图标以适合数据处理***内的一个显示区 |
US7444599B1 (en) * | 2002-03-14 | 2008-10-28 | Apple Inc. | Method and apparatus for controlling a display of a data processing system |
WO2003104964A2 (en) * | 2002-06-06 | 2003-12-18 | Sony Ericsson Mobile Communications Ab | Graphical user interface for expandable menus |
JP2005004419A (ja) * | 2003-06-11 | 2005-01-06 | Fuji Photo Film Co Ltd | ファイル閲覧装置及び方法並びにプログラム |
CN1661520A (zh) * | 2004-02-24 | 2005-08-31 | 株式会社康耐克 | 问题解决辅助装置以及程序 |
WO2007059503A1 (en) * | 2005-11-15 | 2007-05-24 | Google Inc. | Displaying compact and expanded data items |
Also Published As
Publication number | Publication date |
---|---|
CN101566949A (zh) | 2009-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101566949B (zh) | 一种展示控件的装置及方法 | |
CN108153886B (zh) | 实时数据在web应用中的自定义可视化展示方法 | |
TWI588732B (zh) | 用於經由瓦來呈現應用程式的變化的計算裝置及電腦實施方法 | |
CN100507909C (zh) | 手持设备交互式动态浏览器的显示控制方法 | |
CN103034466B (zh) | 可编程显示器辅助装置及操作画面一并变更方法 | |
CN102077166A (zh) | 使用可视陆标来组织图 | |
CN103562834A (zh) | 用于应用拼贴的呈现格式 | |
CN102938158A (zh) | 通过直接操纵来构建动画时间线 | |
CN102362261A (zh) | 通过网络浏览器输入内容至应用程序 | |
CN101262518A (zh) | 移动终端以及从web站点播放视频的方法 | |
CN103534698A (zh) | 对在基于标记的文档中的数据进行所通知的分割 | |
CN104469465A (zh) | 基于安卓***的智能电视悬浮主场景交互方法 | |
CN102496120B (zh) | 电子标签屏显示商品信息的***、发行方、管理方和方法 | |
CN106162353A (zh) | 界面处理方法、装置及*** | |
CN103957240A (zh) | 一种实时拍摄图片并进行分享的天气***及其实现方法 | |
CN100392634C (zh) | 显示万维网文档的***和方法 | |
CN102449627A (zh) | 向共享站点的自动内容提交 | |
EP2659334A1 (en) | Magnetic-like user interface for combining objects | |
CN106708478B (zh) | 滚动视图显示方法及装置 | |
CN105426076A (zh) | 信息处理方法及电子设备 | |
JP4626675B2 (ja) | 通信ネットワークを利用したファームウェアの提供方法、そのシステムおよびサービスサーバ | |
CN102981876B (zh) | 图片工具条窗口加载方法和装置 | |
CN102761616B (zh) | 基于即时服务的浏览器浏览模式提供***和方法 | |
CN101593124A (zh) | 用于在电子设备中嵌入信息的***和方法 | |
CN116431145A (zh) | 一种生成数据可视化页面的***及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |