桌面组件的渲染方法及系统、电子设备及存储介质与流程

文档序号:33193127发布日期:2023-02-04 09:34阅读:39来源:国知局
桌面组件的渲染方法及系统、电子设备及存储介质与流程

1.本发明涉及计算机技术领域,具体涉及了一种桌面组件的渲染方法及系统、电子设备及存储介质。


背景技术:

2.随着终端设备的智能化,其界面不再仅限于显示应用图标,而是能够显示带有各类功能性信息的桌面组件,也就是微件(widget)。典型的例如天气、日历、电影推介等。桌面组件实际上是一种具有更丰富展现形态的动态图标,和普通图标一样,其也对应于某个应用程序(app),例如某天气预报app。当然,相比于普通的静态应用图标(icon),桌面组件不仅为终端设备的用户提供了例如上述天气预报等app的入口,还能对其对应的app的信息进行展示,因此非常具有吸引力。
3.由此可见,桌面组件最终多样化的展现形态是其主要的优势之一,而各种夺人眼球的展现效果是通过不同的渲染方式得以实现。然而,现有技术中要对桌面组件进行渲染的更新操作存在以下弊端:
4.对于开发者而言,如果通过定制的渲染软件,虽然可以“傻瓜式”地快速定制渲染效果,但是局限较大,换言之只能设定参数的值,而不能改变参数的种类。如果进行自主编码开发,则开发工作量较大且开发过程繁琐。不仅如此,还受终端设备操作系统的制约,例如不仅开发过程需要利用xcode(开发环境)等进行编码,并且每次开发完毕后还需要将开发成果提交到操作系统对应的app应用商店进行注册才能实现一次桌面组件的渲染更新。


技术实现要素:

5.本发明的一个目的在于提供一种桌面组件的渲染方法,其优势在于通过获取和解析按照预设规则生成的布局文件,能够在终端不受操作系统及应用软件限制,灵活自主地生成自定义的桌面组件外观;并且通过对渲染内容的截图操作,将截图用于目标桌面组件显示。
6.本发明的另一个目的在于提供一种桌面组件的渲染方法,其优势在于通过设置不同类型的控件,以及对于这些控件设置相应的属性,能够通过控件构建成最终桌面组件的外观样式,并且不同类型的属性也能便于开发者实现灵活自主地对桌面组件进行外观定义。
7.本发明的另一个目的在于提供一种桌面组件的渲染方法,其优势在于通过设置容器控件,以及对应的布局方式的属性和三种属性值,能够通过容器控件方便明了地确定控件之间的嵌套关系,通过三种属性值的归纳,能够使控件之间的空间逻辑关系更为清晰,从而使得开发人员对于布局文件的设计更为方便,开发的效率更高,开发更容易上手操作。
8.本发明的另一个目的在于提供一种桌面组件的渲染方法,其优势在于通过预设规则将收到的布局文件解析为用于渲染桌面组件的渲染指令集,并通过渲染指令集生成控件及调整控件属性,从而能够使生成的控件符合按照自定义的样式呈现于目标桌面组件。
9.本发明的另一个目的在于提供一种桌面组件的渲染方法,其优势在于通过获取并结合目标桌面组件的属性信息生成渲染内容,使生成的渲染内容适配于最终需要渲染的目标桌面组件,提高了目标桌面组件的渲染精度。
10.本发明的另一个目的在于提供一种桌面组件的渲染方法,其优势在于通过将目标桌面组件的尺寸用于渲染内容的生成过程,使生成的渲染内容的尺寸和目标桌面组件精准适配,保证了最终的渲染效果。
11.本发明的另一个目的在于提供一种桌面组件的渲染方法,其优势在于通过对布局文件的判断来进行获取以及利用,实现了布局文件生成和获取过程的异步进行,提高了渲染处理的灵活性。
12.本发明的另一个目的在于提供一种桌面组件的渲染方法,其优势在于通过将截图设置为目标桌面组件的界面,简化了以往的渲染处理实现逻辑,大大降低了在此过程中内存溢出等系统错误的发生概率。
13.本发明的另一个目的在于提供一种桌面组件的渲染系统,其优势在于通过对应用程序的合理利用,使其能够灵活地接收自定义的布局文件,通过软件开发工具包实现了对于布局文件的解析和渲染内容生成操作;并通过软件开发工具包和应用程序的配合使用实现了不受操作系统及应用软件限制,灵活自主地在该电子设备生成自定义的桌面组件外观;并且通过设置软件开发工具包实现了渲染功能的解耦,能够嵌入应用于不同终端的应用程序。
14.本技术的另一个目的在于提供一种电子设备,其优势在于通过该电子设备执行桌面组件的渲染方法,实现了不受操作系统及应用软件限制,灵活自主地在该电子设备生成自定义的桌面组件外观;并且通过对渲染内容的截图操作节省了电子设备在渲染过程中的内存占用,有利于避免内存溢出等问题。
15.本技术的另一个目的在于提供一种存储介质,其上存储有计算机程序,在需要时能够被调用并执行,从而实现不受操作系统及应用软件限制,灵活自主地在该电子设备生成自定义的桌面组件外观。
16.本发明第一方面提供了一种桌面组件的渲染方法,所述渲染方法包括步骤:
17.获取布局文件,所述布局文件根据预设规则生成;
18.根据所述预设规则解析所述布局文件,生成渲染内容;
19.获取所述渲染内容的截图;
20.发送所述渲染内容的截图至所述目标桌面组件。
21.本发明第二方面提供了一种桌面组件的渲染系统,所述渲染系统包括应用程序和软件开发工具包;所述应用程序为所述桌面组件提供显示内容;
22.所述应用程序,获取布局文件,发送所述布局文件至所述软件开发工具包;其中,所述布局文件根据预设规则生成;
23.所述软件开发工具包,根据所述预设规则解析所述布局文件,生成渲染内容;获取所述渲染内容的截图,发送所述渲染内容的截图至所述应用程序;
24.所述应用程序,发送所述渲染内容的截图至所述桌面组件。
25.本发明第三方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的桌面组件的
渲染方法。
26.本发明第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的桌面组件的渲染方法。
附图说明
27.图1为本发明的实施例1的桌面组件的渲染方法的流程图。
28.图2为本发明的实施例1的容器控件的横向布局的布局方式示意图。
29.图3为本发明的实施例1的容器控件的纵向布局的布局方式示意图。
30.图4为本发明的实施例1的桌面组件的渲染方法的流程图。
31.图5为本发明的实施例1的桌面组件的渲染方法的流程图。
32.图6为本发明的实施例1的桌面组件的渲染方法的流程图。
33.图7为本发明的实施例1的桌面组件的渲染方法的流程图。
34.图8为本发明的实施例2的桌面组件的渲染系统的模块示意图。
35.图9为本发明的实施例3的电子设备的结构框图。
具体实施方式
36.下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
37.实施例1
38.参见图1所示,本实施例提供了一种桌面组件的渲染方法,包括步骤:
39.s1.获取布局文件,布局文件根据预设规则生成。
40.s2.根据预设规则解析布局文件,生成渲染内容。
41.s3.获取渲染内容的截图。
42.s4.发送渲染内容的截图至目标桌面组件。
43.本实施例基于终端侧来描述一种桌面组件的渲染方法,需要渲染的目标桌面组件是安装并显示于该终端。终端例如手机、平板电脑等。渲染是一种计算机图形图像处理方式,指在通过软件实现生成图像。
44.桌面组件是基于网络的可视化实用工具。例如常见于手机天气桌面组件显示当天的实时天气情况;电影桌面组件显示最新的电影讯息等。
45.步骤s1中,手机等终端从服务器获取一布局文件,该布局文件是基于一种预设规则生成,该预设规则可以是一种预先自定义的api(application programming interface,应用程序接口)文档,即预先定义的函数集合,目的在于使开发人员能够基于软硬件访问一组例程,而又无需访问源码或理解内部工作机制的细节。
46.该布局文件具体可以是一种遵循上述api文档规范的文本文件,例如是xml(extensible markup language,可扩展标记语言)文件,或者是json(javascript object notation,javascript对象标记)文件;由于都具有基于文本以及轻量级数据交换格式的特点,能够实现跨操作系统及软件平台使用,因此无论终端设备的操作系统是安卓系统还是ios(苹果公司开发的移动操作系统)系统,获取过程都不存在格式兼容问题。
47.步骤s2根据该预设规则即api文档中定义的内容来解析上述布局文件,生成渲染
内容。步骤s2生成的渲染内容,即最终将在终端呈现的桌面组件的显示内容,当然在渲染处理过程中这些渲染内容是缓存于手机内存,即手机内存ram(random access memory,随机存储器)中,并经后序处理后,最终在终端进行显示。
48.渲染内容确定之后,步骤s3在终端内存中对s2中生成的渲染内容进行截图,由于从布局文件中进行解析得到的渲染结果,往往同时包括各种图片、图形、字符格式外观、嵌套约束关系等,将其进行截图后,能够准确地在桌面组件进行呈现。
49.步骤s4将渲染内容得到的截图发送至目标桌面组件,例如上述的天气桌面组件或电影桌面组件,这样就完成了对于桌面组件的渲染过程。
50.作为较佳的实施方式,预设规则包括控件类型以及与控件类型对应的控件属性;其中,控件类型表示渲染内容包括的控件的类型。
51.本实施方式的预设规则可以是一种api文档,其中,定义了控件类型及其对应的属性,这些控件类型实现了最终的桌面组件的架构,构成最终的渲染内容。包括以下控件:
52.html控件代表根视图,只能有一个。
53.其属性包括:size,该属性表示开发布局文件的时候,参考的设计图样上的桌面组件的大小。例如:<htmlsize=

329,155

>,表示一个长宽像素值分别为329和155的桌面组件。
54.space控件,是用于占位的控件,也就是在渲染过程中,用于在图像的某个位置留白。其属性包括length,该属性用来控制space控件具体占用多少像素,默认值是5。例如:《space length=

10

/>,这是非必要填写的属性。
55.label控件,是用于显示文本信息的控件,属性包括color,该属性用来控制文本信息的颜色,默认是黑色。例如:<label color=

black

>本周热映</label>,即表示最终“本周热映”四个字的显示颜色为黑色。该属性是非必须填写的属性。
56.label控件还包括fontsize属性,该属性用来控制文字的大小,默认值是15。也是非必须填写,例如《label fontsize=

18

>本周热映《/label>表示“本周热映”的字体大小为字号18。
57.label控件还包括fontweight属性,该属性用来控制文字显示的类型,默认值是normal,也可以选择值bold,分别表示非加粗和加粗文字。
58.label控件还包括textalign属性,该属性用来控制文字对齐方式,包括三个值,其中left表示左对齐;center表示水平居中对齐,right表示右对齐。
59.此外label控件还包括size属性,该属性用来表面当前文本控件的大小。
60.img控件,用于显示图片。包括属性src,该属性用来设置图片的来源,例如某个链接的网络图片。
61.此外上述控件类型的控件,均包含通用属性,通用属性包括:
62.backgroundcolor属性,表示控件的背景颜色;
63.position属性,表示控件的绝对位置;
64.radius属性,表示圆角程度。
65.本实施方式通过设置不同类型的控件,以及对于这些控件设置相应的属性,能够通过控件构建成最终桌面组件的外观样式,并且不同类型的属性也能便于开发者实现灵活自主地对桌面组件进行外观定义。
66.作为较佳的实施方式,控件类型包括容器,容器对应的控件属性包括布局方式;布局方式包括横向布局、纵向布局以及层叠布局。容器的布局方式为横向布局时,容器内部的控件按横向顺序排列;容器的布局方式为纵向布局时,容器内部的控件按纵向顺序排列;容器的布局方式为层叠布局时,容器内部的控件按层叠顺序排列。
67.具体地,容器控件div控件代表一个容器,其内部可以放一些子控件。容器控件div包括属性layout,该属性用来控制子控件的布局方式,包括horizontal、vertical、stack三个属性值,分别代表容器内部的子控件为横向布局、纵向布局以及层叠布局。
68.参见图2所示,当容器控件的属性值为横向布局时,内部的子控件从左往右依次排列设置,参见图3所示,当容器控件的属性值为纵向布局时,内部的子控件从上往下依次排列设置。当容器控件的属性值为层叠布局时,内部的子控件先下后上依次设置;当然,这里的属性值仅用于限定容器内部子控件的最终位置关系,并未限定其逐一加入容器的顺序;例如在横向布局时,也可以从右往左依次排列设置。
69.本实施方式通过设置容器控件,以及对应的布局方式的属性和属性值,能够通过容器控件方便明了地确定控件之间的嵌套关系,通过属性值的归纳,能够使控件之间的空间逻辑关系更为清晰,从而使得开发人员对于布局文件的设计更为方便,开发的效率更高,开发更容易上手操作。
70.参见图4所示,作为较佳的实施方式,步骤s2包括以下步骤:
71.s21.根据预设规则解析布局文件,生成渲染指令集。
72.s22.根据渲染指令集,生成控件,调整控件的控件属性,以生成渲染内容。
73.生成渲染指令集是由软件开发工具包(software development kit,sdk)来生成的,其嵌入集成于应用程序app中,并开放一个接口要求对其集成的应用程序给出布局文件的内容。当应用程序从服务端或者其他位置获取到布局文件后,将其发送给软件开发工具包,软件开发工具包内部会对布局文件的内容做解析渲染操作。
74.布局文件是一个标准格式的文件,软件开发工具包获取到文件内容后按照预设规则,调用系统接口去做解析生成渲染指令集,从而得到每个节点的信息,包括了上述的控件类型及控件属性等;例如label控件及文本的内容、大小、背景颜色以及具体位置等信息。通过生成各种控件,以及调整控件对应的属性,最终合成了渲染内容。
75.本实施方式通过预设规则将收到的布局文件解析为用于渲染桌面组件的渲染指令集,并通过渲染指令集生成控件及调整控件属性,从而能够使生成的控件符合按照自定义的样式呈现于目标桌面组件。
76.参见图5,作为较佳的实施方式,步骤s21之前还包括步骤:
77.s21’.获取目标桌面组件的属性信息。
78.步骤s21根据预设规则解析布局文件,并结合目标桌面组件的属性信息,生成渲染内容。较佳地,目标桌面组件的属性信息包括目标桌面组件的尺寸。
79.渲染目标桌面组件的目的在于灵活地呈现丰富的信息内容;目标桌面组件对于每个终端,其在终端屏幕的位置以及显示的尺寸通常是可预知的,本实施方式利用目标桌面组件的这一特性,先获取其属性信息,并在对渲染内容的生成过程中,充分结合和利用目标桌面组件的属性信息,使得生成的渲染内容能够和目标桌面组件的属性更为匹配。
80.具体地,由于本实施例中是通过将渲染内容进行截图,将截图设置于目标桌面组
件,因此,预先获取目标桌面组件的尺寸,如当前分辨率下的长宽像素值,从而就能相应地对于截图操作过程中的截图尺寸予以适配,最终生成符合目标桌面组件在终端屏幕上显示尺寸的截图。
81.本实施方式通过提供一种桌面组件的渲染方法,其优势在于通过获取并结合目标桌面组件的属性信息生成渲染内容,使生成的渲染内容适配于最终需要渲染的目标桌面组件,提高了目标桌面组件的渲染精度。具体地,通过将目标桌面组件的尺寸用于渲染内容的生成过程,使生成的渲染内容的尺寸和目标桌面组件精准适配,保证了最终的渲染效果。
82.参见图6,作为较佳的实施方式,步骤s1具体包括步骤:
83.s11.判断是否存在布局文件;
84.s12.若存在,获取布局文件。
85.步骤s1中,终端获取布局文件,通常是由终端上与目标桌面组件关联的应用程序实现的,而布局文件可以是由不同的开发人员设计完成后,统一存储至云端供不同的终端访问索取,也可以是存储于某一台或数台局域网服务端;甚至也可以是将布局文件存储在另一个终端或终端本地。
86.应用程序按照预定的路径判断是否存在布局文件,并且还可以判断布局文件的生成者、生成时间等是否符合要求,如果存在符合要求的布局文件则进行获取。这样开发人员对于布局文件的开发过程就和终端获取布局文件实现了异步,相比于通常由服务器端统一按照规定下发的做法显然具有更大的灵活性。
87.本实施方式通过对布局文件的判断来进行获取以及利用,实现了布局文件生成和获取过程的异步进行,提高了渲染处理的灵活性。
88.参见图7,作为较佳的实施方式,步骤s4之后还包括步骤:
89.s4’.将渲染内容的截图设置为目标桌面组件的界面。
90.本实施例通过获取和解析按照预设规则生成的布局文件,并且通过对渲染内容进行截图操作以将截图用于目标桌面组件显示,能够在终端不受操作系统及应用软件限制,灵活自主地生成自定义的桌面组件外观。
91.实施例2
92.参见图8,本实施例具体提供了一种桌面组件的渲染系统,渲染系统包括应用程序1和软件开发工具包2,应用程序1为桌面组件提供显示内容。
93.应用程序1获取布局文件,发送布局文件至软件开发工具包2;其中,布局文件根据预设规则生成;
94.软件开发工具包2根据预设规则解析布局文件,生成渲染内容;获取渲染内容的截图,发送渲染内容的截图至应用程序1;
95.应用程序1,发送渲染内容的截图至目标桌面组件。
96.本实施例基于终端侧来描述一种桌面组件的渲染方法,需要渲染的目标桌面组件是安装并显示于该终端。终端例如手机、平板电脑等。本实施例中的预设规则可以是一组自定义的api应用程序接口;布局文件具体可以是一种遵循上述api应用程序接口的文本文件,例如是xml文件或json文件。
97.应用程序1例如一安装于终端的app,app从预设或临时指定的任一路径获取布局文件,通过软件开发工具包2开放的接口传入布局文件。
98.上述软件开发工具包,即sdk;是嵌入集成于app的,但是通过集成了与渲染相关的处理功能,实现了相对于app的解耦;提高了渲染操作的灵活性。在收到应用程序发送的布局文件后,sdk根据预设规则解析布局文件并生成渲染内容;获取渲染内容的截图,并发送渲染内容的截图至app。
99.最终,由app发送渲染内容的截图至桌面组件。
100.具体地,例如由用户持有手机,在一次电影桌面组件的渲染过程中,由任一开发人员根据预设规则设计开发出一款描述电影桌面组件的xml格式布局文件,从其所使用的开发设备将该布局文件上传至服务器;手机端的电影桌面组件关联的app即从服务器搜索并获取到该布局文件后发送给sdk;sdk进行解析渲染的操作后根据预设规则生成控件及其属性,确定了渲染内容并进行截图;该截图由sdk发送至app后用于在桌面组件在手机的显示区域进行填充显示,实现整个渲染过程。
101.本实施例通过设置软件开发工具包和应用程序组成的桌面组件的渲染系统,能够获取和解析按照预设规则生成的布局文件,能够在终端不受操作系统及应用软件限制,灵活自主地生成自定义的桌面组件外观。
102.实施例3
103.参见图9所示,本实施例提供了一种电子设备30,包括处理器31、存储器32及存储在存储器32上并可在处理器31上运行的计算机程序,处理器31执行程序时实现实施例1中的桌面组件的渲染方法。图9显示的电子设备30仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
104.电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。
105.总线33包括数据总线、地址总线和控制总线。
106.存储器32可以包括易失性存储器,例如随机存取存储器(ram)321和/或高速缓存存储器322,还可以进一步包括只读存储器(rom)323。
107.存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
108.处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1中的桌面组件的渲染方法。
109.电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器36通过总线33与模型生成的设备30的其它模块通信。可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
110.应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述
的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
111.实施例4
112.本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现实施例1中桌面组件的渲染方法中的步骤。
113.其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
114.在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行实现实施例1中桌面组件的渲染方法中的步骤。
115.其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
116.虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1