CN105511873B - 用户界面控件展示方法及装置 - Google Patents
用户界面控件展示方法及装置 Download PDFInfo
- Publication number
- CN105511873B CN105511873B CN201510874037.1A CN201510874037A CN105511873B CN 105511873 B CN105511873 B CN 105511873B CN 201510874037 A CN201510874037 A CN 201510874037A CN 105511873 B CN105511873 B CN 105511873B
- Authority
- CN
- China
- Prior art keywords
- attribute
- attributes
- control
- value
- attribute set
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明提供了一种用户界面控件展示方法及装置,其中,该方法包括:抽象出用户界面UI控件的控件属性;对控件属性中的一个或多个属性进行赋值,得到包括赋值了的一个或多个属性的属性集合;根据获取到的标识信息确定对应的属性集合,并依据属性集合,展示UI控件,通过本发明,解决了相关技术中对控件进行操作时,存在资源消耗高,开发效率低下的问题,进而达到了减少资源消耗,提高开发效率的效果。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种用户界面控件展示方法及装置。
背景技术
用户界面(User Interface,简称为UI)是任何一款游戏都必不可少的部分,其中,也包含大量的程序开发,在开发过程中可能会遇到各种数值的调整(比如,调整某个按钮的位置、某张图片的尺寸),而且这些调整都需要程序和美术进行配合完成,可能一个小的调整会使得工期一拖再拖,所以在项目成立之初,选择一款UI引擎之后一般都会先制作一个可视化的UI编辑器,让美术可以在UI编辑器中搭建好一个界面,图1是相关技术中购买界面的二次确认框的示意图,如图1所示,程序负责在需要的时候调用这个界面,并且编写一些购买相关的逻辑代码,如果当某天策划要求修改界面的风格或者布局,美术就可以自行更改界面中的各个控件而不需要通过程序来修改代码,这是一般游戏中UI开发的流程。
但是这也带来一个问题,相关技术中的UI编辑器中只能进行一些静态设定,而游戏逻辑本身相关的动态调整还是需要在编码过程中进行动态更改。图2是相关技术中购买物品时货币不足的示意图,图1和图2的区别在于剩余货币的文字样式的区别,文字样式包括但不限于文字的字体、颜色、大小、加粗、斜体、描边、外发光等等。
为解决上述问题,在相关技术中,一般采用以下两种做法:
方法1、预先生成两套文字控件,根据不同情况选择显示哪套控件;
方法2、代码里面写定一些文字样式参数,根据不同情况对控件进行属性设置。
针对方法1,会增加不必要的内存开销,而且不便于扩展;针对方法2,会使代码冗长,可读性差,返工率高,大大降低开发效率。
因此,在相关技术中,对控件进行操作时,存在资源消耗高,开发效率低下的问题。
发明内容
本发明提供了一种用户界面控件展示方法及装置,以至少解决相关技术中对控件进行操作时,存在资源消耗高,开发效率低下的问题。
根据本发明的一个方面,提供了一种用户界面控件展示方法,包括:抽象出用户界面UI控件的控件属性;对所述控件属性中的一个或多个属性进行赋值,得到包括赋值了的所述一个或多个属性的属性集合;根据获取到的标识信息确定对应的属性集合,并依据所述属性集合,展示所述UI控件。
优选地,对所述控件属性中的一个或多个属性进行赋值,得到包括赋值了的所述一个或多个属性的所述属性集合包括:拷贝预存的所述控件的默认属性集合,其中,所述默认属性集合中所包括的属性的属性值为预定默认值;通过修改所述默认属性集合中所包括的属性的所述预定默认值的方式对所述属性集合中所包括的所述一个或多个属性进行赋值,得到所述属性集合。
优选地,对所述控件属性中的一个或多个属性进行赋值,得到包括赋值了的所述一个或多个属性的所述属性集合包括:判断所述控件的所述属性集合是否继承已经存在的被继承属性集合;依据所述被继承属性集合的属性值,确定所述控件的所述属性集合的属性值。
优选地,所述属性集合中的每一个属性均用以下四元组来描述:属性类型propertyType、属性读写类型readWriteType、属性获取方法getMethod、属性设置方法setMethod。
优选地,依据所述被继承属性集合的属性值,确定所述控件的所述属性集合的属性值包括:从所述被继承属性集合查找所述属性集合中的所述一个或多个属性的第一属性值;通过属性获取方法getMethod获取所述属性集合中的所述一个或多个属性的第二属性值;判断所述第一属性值与所述第二属性值是否相同;在判断结果为是的情况下,确定与所述第二属性值相同的所述第一属性值为所述属性集合的属性值;和/或,在判断结果为否的情况下,采用属性设置方法setMethod设置所述属性集合的属性值。
优选地,采用UI编辑器,可视化地对所述控件属性中的一个或多个属性进行赋值,得到包括赋值了的所述一个或多个属性的属性集合。
优选地,所述属性集合的数据采用键值对的字典结构进行表述。
根据本发明的另一方面,提供了一种用户界面控件展示装置,包括:抽象模块,用于抽象出用户界面UI控件的控件属性;赋值模块,用于对所述控件属性中的一个或多个属性进行赋值,得到包括赋值了的所述一个或多个属性的属性集合;展示模块,用于根据获取到的标识信息确定对应的属性集合,并依据所述属性集合,展示所述UI控件。
优选地,所述赋值模块包括:拷贝单元,用于拷贝预存的所述控件的默认属性集合,其中,所述默认属性集合中所包括的属性的属性值为预定默认值;赋值单元,用于通过修改所述默认属性集合中所包括的属性的所述预定默认值的方式对所述属性集合中所包括的所述一个或多个属性进行赋值,得到所述属性集合。
优选地,所述赋值模块包括:判断单元,用于判断所述控件的所述属性集合是否继承已经存在的被继承属性集合;确定单元,用于依据所述被继承属性集合的属性值,确定所述控件的所述属性集合的属性值。
优选地,所述属性集合中的每一个属性均用以下四元组来描述:属性类型propertyType、属性读写类型readWriteType、属性获取方法getMethod、属性设置方法setMethod。
优选地,所述确定单元包括:查找子单元,用于从所述被继承属性集合查找所述属性集合中的所述一个或多个属性的第一属性值;获取子单元,用于通过属性获取方法getMethod获取所述属性集合中的所述一个或多个属性的第二属性值;判断子单元,用于判断所述第一属性值与所述第二属性值是否相同;处理子单元,用于在所述判断子单元的判断结果为是的情况下,确定与所述第二属性值相同的所述第一属性值为所述属性集合的属性值;和/或,在所述判断子单元的判断结果为否的情况下,采用属性设置方法setMethod设置所述属性集合的属性值。
通过本发明,采用抽象出用户界面UI控件的控件属性;对所述控件属性中的一个或多个属性进行赋值,得到包括赋值了的所述一个或多个属性的属性集合;根据获取到的标识信息确定对应的属性集合,并依据所述属性集合,展示所述UI控件,解决了相关技术中对控件进行操作时,存在资源消耗高,开发效率低下的问题,进而达到了减少资源消耗,提高开发效率的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是相关技术中购买界面的二次确认框的示意图;
图2是相关技术中购买物品时货币不足的示意图;
图3是根据本发明实施例的控件操作方法的流程图;
图4是根据本发明实施例提供的一个UI界面的架构图;
图5是根据本发明实施例提供的UI组件继承关系UML类图;
图6是根据本发明实施例默认皮肤的示意图;
图7是根据本发明实施例提供的皮肤生成的示意图;
图8是根据本发明实施例的控件操作装置的结构框图;
图9是根据本发明实施例的控件操作装置中确定模块82的结构框图一;
图10是根据本发明实施例的控件操作装置中确定模块82的结构框图二;
图11是根据本发明实施例的控件操作装置中操作模块84的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
在本实施例中提供了一种用户界面控件展示方法,图3是根据本发明实施例的用户界面控件展示方法的流程图,如图3所示,该流程包括如下步骤:
步骤S302,抽象出用户界面UI控件的控件属性;
步骤S304,对控件属性中的一个或多个属性进行赋值,得到包括赋值了的一个或多个属性的属性集合;
步骤S306,根据获取到的标识信息确定对应的属性集合,并依据属性集合,展示UI控件。
通过上述步骤,依据控件属性的属性集合来对展示该控件,相对于相关技术中,需要分别对控件的在各种情况下分别生成控件,或者采用代码对控件的各种情况进行编码,对控件对应的属性集合中所包括的属性进行设置,不仅解决了相关技术中,对控件进行操作时,存在资源消耗高,开发效率低下的问题,进而达到了减少资源消耗,提高开发效率的效果。
在本实施例中,为每个UI控件抽象出控件属性,每个属性需要提供属性类型、读写类型、设置方法(setMethod)、获取方法(Get Method)。可以通过可视化的UI编辑器修改这些属性,从而对UI控件进行微调,调整完毕后会将所有属性保存在数据文件中,在游戏加载的时候进行数据文件的载入及解析,从而创建出对应的UI控件。在此基础上引入一个“皮肤”的概念(即上述所指的控件的属性集合的概念,为叙述方便,以下简称“皮肤”),将某一些属性变化的集合(Property Set)集成成为一个皮肤,并且定义皮肤名字作为该皮肤的唯一标识符,皮肤和属性集合的对应关系是通过界面制作者(美术)在UI编辑器中建立的,而软件开发者(这里指程序员)在编码过程中对这层对应关系是透明的,即软件开发者并不知道哪个皮肤对应哪套属性集合,这样就能做到软件开发者只关心具体游戏逻辑,而美术只关心界面表现,使两边的开发得以并行推进,很大程度上提高了开发效率(减少返工率);而且对于某一个UI控件,只是通过属性的设置来改变控件的具体表现,不会如相关技术中的方法1那样增加额外的内存开销,很大程度上降低了内存耗用率;再者,程序在调用上不用关心具体的属性是什么,用的是统一的皮肤设置接口,调用相对于相关技术中的方法2要简单很多。上述通过封装及集成UI控件属性的方式来提高程序开发效率的方法,不仅调用简单,返工率低,而且空间耗用率也低。
在对上述实施例中所指的控件进行说明之前,先对本申请所涉及的界面进行说明。
图4是根据本发明实施例提供的一个UI界面的架构图,如图4所示,一个UI界面可以看成是一棵控件树,每个叶子结点对应一个原子控件(如Button、Image等),每个内部(非叶子)结点对应一个容器控件(Container的子类)。图5是根据本发明实施例提供的UI组件继承关系UML类图,它描述了一个简单的UI系统的基本组件的继承关系。图4中的每一个结点都是图5类图上的类。
其中,上述控件中的每个控件都有基本属性和特有属性:
基本属性是所有控件公有的属性,例如相对于父控件的笛卡尔坐标(以下会简称为坐标)是每个控件都应该有的基本属性,有了它就能够计算该控件在屏幕上的绝对坐标,具体的,为每个控件保存一个相对坐标(相对于父控件的坐标),它的绝对坐标满足如下等式:
子控件绝对坐标=父控件绝对坐标+子控件相对坐标
这个关系式是递归定义的,也可以描述成控件的绝对坐标等于该控件对应的树结点到树根结点路径上所有控件的相对坐标之和。控件得到绝对坐标之后就能在屏幕的相应位置进行渲染显示。
特有属性是对应不同控件自身设定的属性,例如,图片控件需要一个图片资源的地址,而文字控件不需要,它需要的是一个文本字符串用于显示文字的具体内容。
例如,文字控件的属性,color属性描述文字的颜色,text属性描述文字的内容,每个属性均用一个四元组(propertyType,readWriteType,getMethod,setMethod)来描述。即,上述皮肤对应的属性集合中的每一个属性均用以下四元组来描述:属性类型propertyType、属性读写类型readWriteType、属性获取方法getMethod、属性设置方法setMethod。下面对该四元组分别进行描述。
propertyType定义属性的类型,一般定义有整数类型、浮点数类型、字符串类型、布尔类型(真或假)、元组(列表)类型、字典(键值对)类型等等。
readWriteType定义属性的读写类型,一般有“只读”(read only)和“读写”(readwrite)两种类型,“只读”在控件创建完后不能进行修改,例如,控件的类名,默认创建参数列表等等;而“读写”类型是可以修改并且保存的属性,上文提到的“皮肤”对应的属性都是“读写”类型,例如控件的坐标、尺寸等等。
getMethod定义属性的获取方法,即获取函数,一般对应控件的某个函数,UI编辑器就是通过这个方法从控件上获取属性的值进行显示的,例如控件的相对坐标的获取可以通过get_coord函数获取。
setMethod定义属性的设置方法,即设置函数,一般对应控件的某个函数,在UI编辑器对某个控件的属性进行修改,就是通过这个函数和控件进行衔接的,例如控件的相对坐标的设置可以通过set_coord函数设置。
在对控件属性中的一个或多个属性进行赋值,得到包括赋值了的一个或多个属性的属性集合时,可以采用多种方式,例如,可以采用以下方式:先拷贝预存的控件的默认属性集合,其中,默认属性集合中所包括的属性的属性值为预定默认值;之后,通过修改默认属性集合中所包括的属性的预定默认值的方式对属性集合中所包括的一个或多个属性进行赋值,得到属性集合。采用上述默认属性集合的方式得到控件的属性集合,可以快速地得到属性集合,即在一定程度上有效地提高得到控件的皮肤的效率。
图6是根据本发明实施例默认皮肤的示意图,如图6所示,其中“default”就表示了一个默认皮肤(即默认属性集合),可以通过UI编辑器自行创建皮肤,图7是根据本发明实施例提供的皮肤生成的示意图,如图7所示,通过下拉菜单的“new”选项新建一个新的皮肤,在属性栏的“skin_name”一栏键入皮肤的名字“hello_skin”,这样一个新的皮肤就生成了。
在进行新建的时候实际上是对“default”皮肤的皮肤数据进行一个拷贝,在指定完皮肤的唯一标识符后就相当于复制了一份“default”皮肤的皮肤数据,并且用唯一标识符来标识这个皮肤,任何一个生成的皮肤都可以通过UI编辑器来修改所有“读写”属性,修改某个属性时会根据属性的setMethod修改对应控件,从而反映到UI编辑器上,实现可视化修改,从而确定该控件对应的皮肤。
又例如,在对控件属性中的一个或多个属性进行赋值,得到包括赋值了的一个或多个属性的属性集合时,还可以采用以下方式:先判断控件的属性集合是否继承已经存在的被继承属性集合;之后,依据被继承属性集合的属性值,确定控件的属性集合的属性值。
为了压缩存储数据,引入一个皮肤继承的概念,即任何皮肤都可以继承已经存在的皮肤,对应图7中的”skin_template”属性,它指定当前皮肤的被继承皮肤的唯一标识符,皮肤A继承皮肤B,则皮肤A的数据中的值默认值取自皮肤B的数据,如果皮肤A中的某个数据没有被改变,那么可以直接读皮肤B的对应数据,而不需要把A皮肤的这个数据保存到数据文件中(这里的数据文件,即指保存到硬盘上的数据文件)。这样就有效地节省了皮肤数据的存储开销。举例来说,依据被继承属性集合的属性值,确定控件的属性集合的属性值时,可以采用以下处理方式:从被继承属性集合查找属性集合中的一个或多个属性的第一属性值;通过属性获取方法getMethod获取属性集合中的一个或多个属性的第二属性值;判断第一属性值与第二属性值是否相同;在判断结果为是的情况下,确定与第二属性值相同的第一属性值为属性集合的属性值;和/或,在判断结果为否的情况下,采用属性设置方法setMethod设置属性集合的属性值。
需要说明的是,在对控件属性中的一个或多个属性进行赋值,得到包括赋值了的一个或多个属性的属性集合时,可以采用多种方式进行操作,例如,可以采用UI编辑器,可视化地可视化地对控件属性中的一个或多个属性进行赋值,得到包括赋值了的一个或多个属性的属性集合。即在美术在UI编辑器可以编辑各种皮肤而不受软件开发者的限制,之后,编辑好的皮肤数据是通过属性的getMethod从控件本身获取所有属性值,并且保存到树形数据文件(如*.xml、*.py)中。
对应于上述“skin_template”属性,软件开发者在调用时调用统一接口:
void set_skin(skinname),其中skinname为上文提到的皮肤的唯一标识符。
具体的,set_skin函数的实现如下:
枚举指定皮肤(命名为skinname的皮肤)的键值对(这里的键指的是UI组件的属性名,需要从“default”皮肤中获取,因为指定皮肤是通过皮肤继承生成的,如果有属性未发生改变,那么那个未发生改变的属性是不会保存到数据文件中的,也就不存在这个属性的键了)。对于每个键,获取它对应的值,具体的,如果这个键存在于指定皮肤中,则可以直接从指定皮肤的皮肤数据中获取;否则,需要到指定皮肤的继承皮肤中递归查找键。当找到属性名对应的属性值后(保证一定可以找到,因为递归查找的根是“default”皮肤,该皮肤的属性是属性全集),通过属性的getMethod方法获取属性值,和查找到的属性值做对比,如果完全相同则不作处理;否则利用属性的setMethod方法将皮肤对应的属性设置到UI控件上。
需要指出的是,上述所指出的键对值可以用于描述皮肤,也可以用于描述皮肤的属性和对应的属性值。即,皮肤(属性集合)的数据采用键值对的字典结构进行表述。
皮肤是指一些属性值的集合,并且集合中的属性都是“读写”属性,所以我们可以将一个皮肤表示成一个字典(键值对),以一个简单的文字控件为例,用(k,v)表示一个键值对,k为键,v为值,皮肤的数据描述可以表示成一个键值对的列表,即:
由于键唯一,所以为了操作上的高效性,高效性具体体现在字典的结构上,结构上决定了它在增加删除修改数据时的平摊复杂度都是O(log n),而列表的最坏复杂度都是O(n),所以一般表示成一个字典,即:
将这个字典称为皮肤数据,定义完皮肤数据后,需要给不同的皮肤定义一个唯一标识符,不同的皮肤拥有相同的键信息,但是它们的值不尽相同。
通过上述实施例及优选实施方式,将庞大的数据和程序代码脱离,利用美术进行微调,而美术在制作上由于有可视化的编辑器,所以相对于程序编码来说是方便很多的;对于软件开发者而言,调用只有一个接口(set_skin,事先实现好的),而且在美术修改皮肤的时候只要不变更皮肤的唯一标识符,是完全不用修改代码的,可以提高双方的开发效率,一举两得。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
在本实施例中还提供了一种用户界面控件展示装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是根据本发明实施例的用户界面控件展示装置的结构框图,如图8所示,该装置包括:抽象模块82,赋值模块84和展示模块86,下面对该装置进行说明。
抽象模块82,用于抽象出用户界面UI控件的控件属性;赋值模块84,连接至上述抽象模块82,用于对控件属性中的一个或多个属性进行赋值,得到包括赋值了的一个或多个属性的属性集合;展示模块86,连接至上述赋值模块84,用于根据获取到的标识信息确定对应的属性集合,并依据属性集合,展示UI控件。
图9是根据本发明实施例的控件操作装置中赋值模块84的结构框图一,如图9所示,该赋值模块84包括:拷贝单元92和赋值单元94,下面对该赋值模块84进行说明。
拷贝单元92,用于拷贝预存的控件的默认属性集合,其中,默认属性集合中所包括的属性的属性值为预定默认值;赋值单元94,连接至上述拷贝单元92,用于用于通过修改默认属性集合中所包括的属性的预定默认值的方式对属性集合中所包括的一个或多个属性进行赋值,得到属性集合。
图10是根据本发明实施例的控件操作装置中赋值模块84的结构框图二,如图10所示,该赋值模块84包括:判断单元102和确定单元104,下面对该赋值模块84进行说明。
判断单元102,用于判断控件的属性集合是否继承已经存在的被继承属性集合;确定单元104,连接至上述判断单元102,用于依据被继承属性集合的属性值,确定控件的属性集合的属性值。
图11是根据本发明实施例的控件操作装置中赋值模块84中确定单元104的结构框图,如图11所示,该确定单元104包括:查找子单元112,获取子单元114,判断子单元116和处理子单元118,下面对该确定单元104进行说明。
查找子单元112,用于从被继承属性集合查找属性集合中的一个或多个属性的第一属性值;获取子单元114,用于通过属性获取方法getMethod获取属性集合中的一个或多个属性的第二属性值;判断子单元116,连接至上述查找子单元112和获取子单元114,用于判断第一属性值与第二属性值是否相同;处理子单元118,连接至上述判断子单元116,用于在判断子单元的判断结果为是的情况下,确定与第二属性值相同的第一属性值为属性集合的属性值;和/或,在判断子单元的判断结果为否的情况下,采用属性设置方法setMethod设置属性集合的属性值。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多个处理器中。
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
S1,抽象出用户界面UI控件的控件属性;
S2,对控件属性中的一个或多个属性进行赋值,得到包括赋值了的一个或多个属性的属性集合;
S3,根据获取到的标识信息确定对应的属性集合,并依据属性集合,展示UI控件。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:对控件属性中的一个或多个属性进行赋值,得到包括赋值了的一个或多个属性的属性集合包括:
S1,拷贝预存的控件的默认属性集合,其中,默认属性集合中所包括的属性的属性值为预定默认值;
S2,通过修改默认属性集合中所包括的属性的预定默认值的方式对属性集合中所包括的一个或多个属性进行赋值,得到属性集合。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:对控件属性中的一个或多个属性进行赋值,得到包括赋值了的一个或多个属性的属性集合包括:
S1,判断控件的属性集合是否继承已经存在的被继承属性集合;
S2,依据被继承属性集合的属性值,确定控件的属性集合的属性值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,属性集合中的每一个属性均用以下四元组来描述:属性类型propertyType、属性读写类型readWriteType、属性获取方法getMethod、属性设置方法setMethod。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:依据被继承属性集合的属性值,确定控件的属性集合的属性值包括:
S1,从被继承属性集合查找属性集合中的一个或多个属性的第一属性值;
S2,通过属性获取方法getMethod获取属性集合中的一个或多个属性的第二属性值;
S3,判断第一属性值与第二属性值是否相同;
S4,在判断结果为是的情况下,确定与第二属性值相同的第一属性值为属性集合的属性值;和/或,在判断结果为否的情况下,采用属性设置方法setMethod设置属性集合的属性值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,采用UI编辑器,可视化地对控件属性中的一个或多个属性进行赋值,得到包括赋值了的一个或多个属性的属性集合。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,属性集合的数据采用键值对的字典结构进行表述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:
抽象出用户界面UI控件的控件属性;对控件属性中的一个或多个属性进行赋值,得到包括赋值了的一个或多个属性的属性集合;根据获取到的标识信息确定对应的属性集合,并依据属性集合,展示UI控件。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:
对控件属性中的一个或多个属性进行赋值,得到包括赋值了的一个或多个属性的属性集合包括:拷贝预存的控件的默认属性集合,其中,默认属性集合中所包括的属性的属性值为预定默认值;通过修改默认属性集合中所包括的属性的预定默认值的方式对属性集合中所包括的一个或多个属性进行赋值,得到属性集合。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:
对控件属性中的一个或多个属性进行赋值,得到包括赋值了的一个或多个属性的属性集合包括:判断控件的属性集合是否继承已经存在的被继承属性集合;依据被继承属性集合的属性值,确定控件的属性集合的属性值。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:
属性集合中的每一个属性均用以下四元组来描述:属性类型propertyType、属性读写类型readWriteType、属性获取方法getMethod、属性设置方法setMethod。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:
依据被继承属性集合的属性值,确定控件的属性集合的属性值包括:从被继承属性集合查找属性集合中的一个或多个属性的第一属性值;通过属性获取方法getMethod获取属性集合中的一个或多个属性的第二属性值;判断第一属性值与第二属性值是否相同;在判断结果为是的情况下,确定与第二属性值相同的第一属性值为属性集合的属性值;和/或,在判断结果为否的情况下,采用属性设置方法setMethod设置属性集合的属性值。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:
采用UI编辑器,可视化地对控件属性中的一个或多个属性进行赋值,得到包括赋值了的一个或多个属性的属性集合。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:
属性集合的数据采用键值对的字典结构进行表述。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种用户界面控件展示方法,其特征在于,包括:
抽象出用户界面UI控件的控件属性;
对所述控件属性中的一个或多个属性进行赋值,得到包括赋值了的所述一个或多个属性的属性集合;
根据获取到的标识信息确定对应的属性集合,并依据所述属性集合,展示所述UI控件;
其中,对所述控件属性中的一个或多个属性进行赋值,得到包括赋值了的所述一个或多个属性的所述属性集合包括:
判断所述控件的所述属性集合是否继承已经存在的被继承属性集合;
依据所述被继承属性集合的属性值,确定所述控件的所述属性集合的属性值;
其中,通过界面制造者在UI编辑器中建立所述属性集合与皮肤的对应关系,所述对应关系在编码过程中对软件开发者是透明的;
依据所述被继承属性集合的属性值,确定所述控件的所述属性集合的属性值包括:从所述被继承属性集合查找所述属性集合中的所述一个或多个属性的第一属性值;通过属性获取方法getMethod获取所述属性集合中的所述一个或多个属性的第二属性值;判断所述第一属性值与所述第二属性值是否相同;在判断结果为是的情况下,确定与所述第二属性值相同的所述第一属性值为所述属性集合的属性值;和/或,在判断结果为否的情况下,采用属性设置方法setMethod设置所述属性集合的属性值;
对所述控件属性中的一个或多个属性进行赋值,得到包括赋值了的所述一个或多个属性的所述属性集合包括:拷贝预存的所述控件的默认属性集合,其中,所述默认属性集合中所包括的属性的属性值为预定默认值;通过修改所述默认属性集合中所包括的属性的所述预定默认值的方式对所述属性集合中所包括的所述一个或多个属性进行赋值,得到所述属性集合。
2.根据权利要求1所述的方法,其特征在于,所述属性集合中的每一个属性均用以下四元组来描述:属性类型propertyType、属性读写类型readWriteType、属性获取方法getMethod、属性设置方法setMethod。
3.根据权利要求1或2所述的方法,其特征在于,采用UI编辑器,可视化地对所述控件属性中的一个或多个属性进行赋值,得到包括赋值了的所述一个或多个属性的属性集合。
4.根据权利要求1或2所述的方法,其特征在于,所述属性集合的数据采用键值对的字典结构进行表述。
5.一种用户界面控件展示装置,其特征在于,包括:
抽象模块,用于抽象出用户界面UI控件的控件属性;
赋值模块,用于对所述控件属性中的一个或多个属性进行赋值,得到包括赋值了的所述一个或多个属性的属性集合;
展示模块,用于根据获取到的标识信息确定对应的属性集合,并依据所述属性集合,展示所述UI控件;
其中,所述赋值模块包括:
判断单元,用于判断所述控件的所述属性集合是否继承已经存在的被继承属性集合;
确定单元,用于依据所述被继承属性集合的属性值,确定所述控件的所述属性集合的属性值;
其中,通过界面制造者在UI编辑器中建立所述属性集合与皮肤的对应关系,所述对应关系在编码过程中对软件开发者是透明的;
所述确定单元包括:查找子单元,用于从所述被继承属性集合查找所述属性集合中的所述一个或多个属性的第一属性值;获取子单元,用于通过属性获取方法getMethod获取所述属性集合中的所述一个或多个属性的第二属性值;判断子单元,用于判断所述第一属性值与所述第二属性值是否相同;处理子单元,用于在所述判断子单元的判断结果为是的情况下,确定与所述第二属性值相同的所述第一属性值为所述属性集合的属性值;和/或,在所述判断子单元的判断结果为否的情况下,采用属性设置方法setMethod设置所述属性集合的属性值;
所述赋值模块包括:拷贝单元,用于拷贝预存的所述控件的默认属性集合,其中,所述默认属性集合中所包括的属性的属性值为预定默认值;赋值单元,用于通过修改所述默认属性集合中所包括的属性的所述预定默认值的方式对所述属性集合中所包括的所述一个或多个属性进行赋值,得到所述属性集合。
6.根据权利要求5所述的装置,其特征在于,所述属性集合中的每一个属性均用以下四元组来描述:属性类型propertyType、属性读写类型readWriteType、属性获取方法getMethod、属性设置方法setMethod。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510874037.1A CN105511873B (zh) | 2015-12-02 | 2015-12-02 | 用户界面控件展示方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510874037.1A CN105511873B (zh) | 2015-12-02 | 2015-12-02 | 用户界面控件展示方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105511873A CN105511873A (zh) | 2016-04-20 |
CN105511873B true CN105511873B (zh) | 2020-05-12 |
Family
ID=55719883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510874037.1A Active CN105511873B (zh) | 2015-12-02 | 2015-12-02 | 用户界面控件展示方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105511873B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107515821B (zh) * | 2016-06-17 | 2021-08-31 | 百度在线网络技术(北京)有限公司 | 控件测试方法和装置 |
CN107544972B (zh) * | 2016-06-23 | 2019-09-13 | 腾讯科技(深圳)有限公司 | 地图编辑方法和装置 |
CN106775703A (zh) * | 2016-12-09 | 2017-05-31 | 网易(杭州)网络有限公司 | 应用逻辑的处理方法及装置 |
CN106528183B (zh) * | 2016-12-27 | 2020-02-07 | 邦彦技术股份有限公司 | 一种创建控件的方法、装置和计算机程序 |
CN107085554B (zh) * | 2017-04-11 | 2019-09-20 | 武汉斗鱼网络科技有限公司 | 一种添加控件标识的方法和装置 |
CN108427557A (zh) * | 2017-05-10 | 2018-08-21 | 平安科技(深圳)有限公司 | 一种控件布局显示控制方法、装置及计算机可读存储介质 |
CN109002334B (zh) * | 2017-06-05 | 2021-09-17 | 阿里巴巴集团控股有限公司 | 一种运维平台及其数据处理方法 |
CN107527374A (zh) * | 2017-08-18 | 2017-12-29 | 珠海市君天电子科技有限公司 | 一种文字显示的方法及设备 |
CN107678744A (zh) * | 2017-09-12 | 2018-02-09 | 平安科技(深圳)有限公司 | 应用控件样式自定义方法、装置以及计算机可读存储介质 |
CN107992305A (zh) * | 2017-12-29 | 2018-05-04 | 广州酷狗计算机科技有限公司 | 应用程序功能按钮的布局方法及装置 |
CN111767002B (zh) * | 2019-05-20 | 2022-03-04 | 北京京东尚科信息技术有限公司 | 页面展示方法、装置、设备及存储介质 |
CN113312025B (zh) * | 2020-02-26 | 2024-04-05 | 北京同邦卓益科技有限公司 | 组件库生成方法及装置、存储介质、电子设备 |
CN111857720B (zh) * | 2020-07-31 | 2023-08-22 | 抖音视界有限公司 | 用户界面状态信息的生成方法、装置、电子设备及介质 |
CN112257133A (zh) * | 2020-10-30 | 2021-01-22 | 久瓴(上海)智能科技有限公司 | 模型管理方法、装置、终端及计算机可读存储介质 |
CN114398033B (zh) * | 2021-12-22 | 2024-05-14 | 陕西法士特齿轮有限责任公司 | 一种界面与数据剥离的设计方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1477892B1 (en) * | 2003-05-16 | 2015-12-23 | Sap Se | System, method, computer program product and article of manufacture for inputting data in a computer system |
CN101859245A (zh) * | 2009-04-09 | 2010-10-13 | 北大方正集团有限公司 | 一种生成用户界面的方法和装置 |
CN101834938A (zh) * | 2010-03-25 | 2010-09-15 | 中兴通讯股份有限公司 | 一种实现移动终端横竖屏切换的装置及方法 |
CN102375733A (zh) * | 2010-08-24 | 2012-03-14 | 北大方正集团有限公司 | 一种便捷的界面布局方法 |
CN102200914B (zh) * | 2011-06-24 | 2013-11-27 | 北京神州泰岳软件股份有限公司 | 在移动终端上实现用户界面的方法和设备 |
CN102419705A (zh) * | 2011-09-30 | 2012-04-18 | 广州杰赛科技股份有限公司 | Web GIS客户端控件生成与管理方法及装置 |
US9116710B2 (en) * | 2012-12-22 | 2015-08-25 | Oracle International Corporation | Dynamic user interface authoring |
-
2015
- 2015-12-02 CN CN201510874037.1A patent/CN105511873B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105511873A (zh) | 2016-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105511873B (zh) | 用户界面控件展示方法及装置 | |
CN108762769B (zh) | 微服务应用编排和部署方法、装置及计算机终端 | |
TWI808393B (zh) | 頁面處理方法、裝置、設備及儲存媒體 | |
US10466971B2 (en) | Generation of an application from data | |
CN111045655B (zh) | 一种页面渲染的方法、装置、渲染服务器和存储介质 | |
JP4812337B2 (ja) | フォームタイプを使用してフォームを生成する方法および装置 | |
CN110162296A (zh) | 应用程序编程接口文档的生成方法、装置及终端设备 | |
US20170351506A1 (en) | Automating feature graduation | |
CN110020356A (zh) | 一种页面模块的代码生成方法、装置及系统 | |
CN111414166A (zh) | 代码的生成方法、装置、设备及存储介质 | |
US11733973B2 (en) | Interactive graphic design system to enable creation and use of variant component sets for interactive objects | |
CN113407284A (zh) | 导航界面的生成方法、装置、存储介质及电子设备 | |
CN113590097B (zh) | 一种api接口的生成方法、装置、电子设备及存储介质 | |
CN114579118A (zh) | 编程方法和系统、设备、存储介质 | |
CN113268232B (zh) | 一种页面皮肤生成方法、装置和计算机可读存储介质 | |
CN113760223B (zh) | 软件迭代过程资源复用和一致性方法、系统、介质及设备 | |
US11526578B2 (en) | System and method for producing transferable, modular web pages | |
CN114489619A (zh) | 一种界面视图显示方法及终端设备、计算机可读存储介质 | |
CN111459483B (zh) | 界面的处理方法和装置 | |
CN113934748A (zh) | 混合型sql脚本文件生成方法、执行方法及装置 | |
CN112486378B (zh) | 图形生成方法、装置、终端及存储介质 | |
CN110688108A (zh) | 一种模型的生成方法、装置及存储介质 | |
CN117008890B (zh) | 扩展应用开发系统及方法 | |
CN115438113A (zh) | 参数管理方法、装置、电子设备及存储介质 | |
CN116522889A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |