CN103823620B - 一种屏幕适配的方法和装置 - Google Patents
一种屏幕适配的方法和装置 Download PDFInfo
- Publication number
- CN103823620B CN103823620B CN201410077059.0A CN201410077059A CN103823620B CN 103823620 B CN103823620 B CN 103823620B CN 201410077059 A CN201410077059 A CN 201410077059A CN 103823620 B CN103823620 B CN 103823620B
- Authority
- CN
- China
- Prior art keywords
- current
- screen display
- module
- component
- display
- 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
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000006978 adaptation Effects 0.000 claims abstract description 42
- 238000012545 processing Methods 0.000 claims description 97
- 238000012544 monitoring process Methods 0.000 claims description 47
- 238000009877 rendering Methods 0.000 claims description 19
- 230000001960 triggered effect Effects 0.000 claims description 11
- 230000000712 assembly Effects 0.000 abstract 1
- 238000000429 assembly Methods 0.000 abstract 1
- 230000000694 effects Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 11
- 230000007547 defect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/22—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
- G09G5/32—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory with means for controlling the display position
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
- G06F3/1462—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay with means for detecting differences between the image stored in the host and the images displayed on the remote displays
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0407—Resolution change, inclusive of the use of different resolutions for different screen areas
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0464—Positioning
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0492—Change of orientation of the displayed image, e.g. upside-down, mirrored
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2354/00—Aspects of interface with display user
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/02—Networking aspects
- G09G2370/022—Centralised management of display operation, e.g. in a server instead of locally
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/10—Use of a protocol of communication by packets in interfaces along the display data pipeline
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Controls And Circuits For Display Device (AREA)
- User Interface Of Digital Computer (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开一种屏幕适配的方法和装置,客户端从服务器端获取用户界面数据包,对用户界面数据包进行解析,得到各个模块的绘制信息和各个组件的绘制信息,该用户界面中的模块按照垂直方向排列,每个模块包含一个或多个组件。客户端根据对自身所在设备的屏幕方向获取各个组件的显示宽度、显示高度和显示坐标,根据各个组件的显示宽度、显示高度和显示坐标,以及需要填充到各个组件中的资源文件,绘制用户界面中的各个组件,能够对具有不同屏幕尺寸的设备进行屏幕适配和横竖屏切换,提高了屏幕适配和横竖屏切换的流畅度,减少了屏幕适配的工作量,提高了屏幕适配效率。
Description
技术领域
本发明涉及终端显示领域,特别是涉及一种屏幕适配的方法和装置。
背景技术
随着移动通信技术的发展,移动设备的类型也日益增多,不同类型的移动设备通常具有不同的操作系统和屏幕尺寸。
现有技术中使用移动中间件技术屏蔽不同操作系统之间的底层差异,实现跨操作系统的快速开发,开发者只需要为客户端开发一套UI(User Interface,用户界面),便可保证客户端能在不同的操作系统中运行。
发明人在实现本发明的过程中,发现现有技术至少存在以下缺陷:
由于不同类型的移动设备的屏幕尺寸通常也不相同,开发者仍需要根据不同的屏幕尺寸制作不同的UI,并经过高保真效果图重设、切片处理、编码和测试,才能使客户端适配多种移动设备,导致屏幕适配工作量大、屏幕适配效率低。
发明内容
本发明提供了一种屏幕适配的方法和装置,以解决现有技术中屏幕适配工作量大、屏幕适配效率低的缺陷。
本发明提供了一种屏幕适配的方法,包括以下步骤:
A1、客户端从服务器端获取用户界面数据包,对所述用户界面数据包进行解析,得到各个模块的绘制信息和各个组件的绘制信息,所述用户界面中的模块按照垂直方向排列,每个模块包含一个或多个组件;
A2、所述客户端对自身所在设备的屏幕方向进行判断,如果所述屏幕方向为竖屏,则执行步骤A3;如果所述屏幕方向为横屏,则执行步骤A4;
A3、所述客户端将所述各个模块的显示宽度设置为所述设备的屏幕宽度,根据所述各个模块的显示宽度、所述各个模块的绘制信息、所述各个组件的绘制信息,获取所述各个组件的显示宽度、显示高度和显示坐标;根据所述各个组件的显示宽度、显示高度和显示坐标,以及需要填充到所述各个组件中的资源文件,绘制所述各个组件,并执行步骤A5;
A4、所述客户端将所述各个模块的显示宽度设置为所述设备的屏幕高度,根据所述各个模块的显示宽度、所述各个模块的绘制信息、所述各个组件的绘制信息,获取所述各个组件的显示宽度、显示高度和显示坐标;根据所述各个组件的显示宽度、显示高度和显示坐标,以及需要填充到所述各个组件中的资源文件,绘制所述各个组件,并执行步骤A5;
A5、客户端监控所述设备的屏幕方向,并在监控到所述设备的屏幕方向发生变化时,返回步骤A2。
本发明还提供了一种屏幕适配的方法,包括以下步骤:
E1、客户端从服务器端获取用户界面数据包,对所述用户界面数据包进行解析,得到全局模块的绘制信息和各个组件的绘制信息,所述全局模块包含所述用户界面中的所有组件;
E2、所述客户端对自身所在设备的屏幕方向进行判断,如果所述屏幕方向为竖屏,则执行步骤E3;如果所述屏幕方向为横屏,则执行步骤E4;
E3、所述客户端将所述全局模块的显示宽度设置为所述设备的屏幕宽度,根据所述全局模块的显示宽度和所述全局模块的绘制信息,获取所述全局模块的显示高度,并执行步骤E5;
E4、所述客户端将所述全局模块的显示高度设置为所述设备的屏幕宽度,根据所述全局模块的显示高度和所述全局模块的绘制信息,获取所述全局模块的显示宽度,并执行步骤E5;
E5、所述客户端根据所述全局模块的显示宽度、所述全局模块的显示高度、所述各个组件的绘制信息,获取所述各个组件的显示宽度、显示高度和显示坐标;根据所述各个组件的显示宽度、显示高度和显示坐标,以及需要填充到所述各个组件中的资源文件,绘制所述各个组件,并执行步骤E6;
E6、所述客户端监控所述设备的屏幕方向,并在监控到所述设备的屏幕方向发生变化时,返回步骤E2。
本发明还提供了一种屏幕适配的方法,包括以下步骤:
H1、客户端从服务器端获取用户界面数据包,对所述用户界面数据包进行解析,得到各个模块的绘制信息和各个组件的绘制信息;
H2、所述客户端根据自身所在设备的屏幕尺寸、所述各个模块的绘制信息和所述各个组件的绘制信息,获取并保存所述各个组件的竖屏显示信息和横屏显示信息;
H3、所述客户端对自身所在设备的屏幕方向进行判断,如果所述屏幕方向为竖屏,则执行步骤H4;如果所述屏幕方向为横屏,则执行步骤H5;
H4、所述客户端根据所述各个组件的竖屏显示信息绘制所述各个组件,并执行步骤H6;
H5、所述客户端根据所述各个组件的横屏显示信息绘制所述各个组件,并执行步骤H6;
H6、所述客户端监控所述设备的屏幕方向,并在监控到所述设备的屏幕方向发生变化时,执行步骤H7;
H7、所述客户端对自身所在设备的屏幕方向进行判断,如果所述屏幕方向为竖屏,则执行步骤H8;如果所述屏幕方向为横屏,则执行步骤H9;
H8、所述客户端根据所述各个组件的竖屏显示信息绘制所述各个组件,并执行步骤H6;
H9、所述客户端根据所述各个组件的横屏显示信息绘制所述各个组件,并执行步骤H6。
本发明还提供了一种屏幕适配的装置,包括:
获取单元,用于从服务器端获取用户界面数据包;
解析单元,用于对所述获取单元获取到的所述用户界面数据包进行解析,得到各个模块的绘制信息和各个组件的绘制信息,所述用户界面中的模块按照垂直方向排列,每个模块包含一个或多个组件;
第一判断单元,用于对所述装置所在设备的屏幕方向进行判断;
处理单元,用于在所述第一判断单元判断出所述屏幕方向为竖屏时,将所述各个模块的显示宽度设置为所述设备的屏幕宽度,根据所述各个模块的显示宽度、所述各个模块的绘制信息、所述各个组件的绘制信息,获取所述各个组件的显示宽度、显示高度和显示坐标;根据所述各个组件的显示宽度、显示高度和显示坐标,以及需要填充到所述各个组件中的资源文件,绘制所述各个组件,并触发监控单元;
在所述第一判断单元判断出所述屏幕方向为横屏时,将所述各个模块的显示宽度设置为所述设备的屏幕高度,根据所述各个模块的显示宽度、所述各个模块的绘制信息、所述各个组件的绘制信息,获取所述各个组件的显示宽度、显示高度和显示坐标;根据所述各个组件的显示宽度、显示高度和显示坐标,以及需要填充到所述各个组件中的资源文件,绘制所述各个组件,并触发监控单元;
所述监控单元,用于监控所述设备的屏幕方向,并在监控到所述设备的屏幕方向发生变化时,触发所述第一判断单元对所述设备的屏幕方向进行判断。
本发明还提供了一种屏幕适配的装置,包括:
获取单元,用于从服务器端获取用户界面数据包;
解析单元,用于对所述获取单元获取到的所述用户界面数据包进行解析,得到全局模块的绘制信息和各个组件的绘制信息,所述全局模块包含所述用户界面中的所有组件;
第一判断单元,用于对所述装置所在设备的屏幕方向进行判断;
设置单元,用于在所述第一判断单元判断出所述屏幕方向为竖屏时,将所述全局模块的显示宽度设置为所述设备的屏幕宽度,根据所述全局模块的显示宽度和所述全局模块的绘制信息,获取所述全局模块的显示高度,并触发处理单元;
在所述第一判断单元判断出所述屏幕方向为横屏时,将所述全局模块的显示高度设置为所述设备的屏幕宽度,根据所述全局模块的显示高度和所述全局模块的绘制信息,获取所述全局模块的显示宽度,并触发处理单元;
所述处理单元,用于根据所述全局模块的显示宽度、所述全局模块的显示高度、所述各个组件的绘制信息,获取所述各个组件的显示宽度、显示高度和显示坐标;根据所述各个组件的显示宽度、显示高度和显示坐标,以及需要填充到所述各个组件中的资源文件,绘制所述各个组件,并触发监控单元;
所述监控单元,用于监控所述设备的屏幕方向,并在监控到所述设备的屏幕方向发生变化时,触发所述第一判断单元对所述设备的屏幕方向进行判断。
本发明还提供了一种屏幕适配的装置,包括:
第一获取单元,用于从服务器端获取用户界面数据包;
解析单元,用于对所述第一获取单元获取到的所述用户界面数据包进行解析,得到各个模块的绘制信息和各个组件的绘制信息;
第二获取单元,用于根据所述装置所在设备的屏幕尺寸、所述各个模块的绘制信息和所述各个组件的绘制信息,获取并保存所述各个组件的竖屏显示信息;
第三获取单元,用于根据所述装置所在设备的屏幕尺寸、所述各个模块的绘制信息和所述各个组件的绘制信息,获取并保存所述各个组件的横屏显示信息;
第一判断单元,用于对所述设备的屏幕方向进行判断;
绘制单元,用于在所述第一判断单元判断出所述屏幕方向为竖屏时,根据所述各个组件的竖屏显示信息绘制所述各个组件,并触发监控单元;
在所述第一判断单元判断出所述屏幕方向为横屏时,根据所述各个组件的横屏显示信息绘制所述各个组件,并触发所述监控单元;
所述监控单元,用于监控所述设备的屏幕方向,并在监控到所述设备的屏幕方向发生变化时,触发所述第一判断单元对所述设备的屏幕方向进行判断。
本发明达到的有益效果:根据设备的屏幕尺寸和屏幕方向、UI中的各个组件的绘制信息绘制UI,能够对具有不同屏幕尺寸的设备进行屏幕适配和横竖屏切换,提高了屏幕适配和横竖屏切换的流畅度,减少了屏幕适配的工作量,提高了屏幕适配效率。
附图说明
图1为本发明实施例中的一种屏幕适配的方法流程图;
图2为本发明实施例中的另一种屏幕适配的方法流程图;
图3为本发明实施例中的客户端获取并保存UI中的各个组件的竖屏显示信息的流程图;
图4为本发明实施例中的客户端获取并保存UI中的各个组件的横屏显示信息的流程图;
图5为本发明实施例中的又一种屏幕适配的方法流程图;
图6为本发明实施例中的一种屏幕适配的装置结构图;
图7为本发明实施例中的另一种屏幕适配的装置结构图;
图8为本发明实施例中的又一种屏幕适配的装置结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的技术方案应用于包括服务器端和客户端的系统中,该客户端安装在设备上,用于在该设备上绘制UI,UI可被划分为多个模块,各个模块按照垂直方向排列,每个模块可以包含一个或多个组件。服务器端生成并保存UI数据包,该UI数据包中包含UI中的各个模块的绘制信息,以及模块中的各个组件的绘制信息。
相应地,客户端获取UI数据包,对UI数据包进行解析,得到UI中的各个模块的绘制信息和各个组件的绘制信息,并根据上述绘制信息绘制UI。
其中,模块的绘制信息可以为模块的宽高比或高宽比,组件的绘制信息包括组件的相对坐标、组件的相对宽度和组件的相对高度,组件的相对坐标包括组件的相对横坐标和组件的相对纵坐标。
相应地,组件的绘制信息的格式为(组件的相对横坐标,组件的相对纵坐标,组件的相对宽度,组件的相对高度),上述绘制信息中的内容可通过百分比的形式表示。
本实施例中,模块的宽高比是该模块在UI效果图中的宽度与该模块在UI效果图中的高度的比值,模块的高宽比是该模块在UI效果图中的高度与该模块在UI效果图中的宽度的比值。组件的相对横坐标是该组件在所属模块中的横坐标与该模块在UI效果图中的宽度的比值,组件的相对纵坐标是该组件在所属模块中的纵坐标与该模块在UI效果图中的高度的比值,组件的相对宽度是该组件在UI效果图中的宽度与该组件所属模块在UI效果图中的宽度的比值,组件的相对高度是该组件在UI效果图中的高度与该组件所属的模块在UI效果图中的高度的比值。
其中,各个模块在UI效果图中的宽度均为UI效果图的总宽度,组件在所属模块中的横坐标是以该模块的左上角为坐标原点,该组件的左上角的横坐标;组件在所属模块中的纵坐标是以该模块的左上角为坐标原点,该组件的左上角的纵坐标。
如图1所示,为本发明实施例中的一种屏幕适配的方法流程图,包括以下步骤:
步骤101,客户端启动,从服务器端获取UI数据包,对UI数据包进行解析,得到UI中的各个模块的绘制信息和各个组件的绘制信息。
例如,UI被划分为模块1、模块2和模块3,其中,模块1中包含组件1和组件2,模块2中包含组件3,模块3中包含组件4、组件5和组件6,客户端对UI数据包进行解析,得到模块1、模块2和模块3的绘制信息(宽高比)分别为40%、30%和30%,以及组件1的绘制信息(20%,10%,70%,30%)、组件2的绘制信息(20%,50%,70%,40%)、组件3的绘制信息(20%,10%,70%,80%)、组件4的绘制信息(10%,10%,40%,90%)、组件5的绘制信息(60%,10%,30%,30%)和组件6的绘制信息(60%,60%,30%,40%)。
步骤102,客户端获取设备的属性信息。
其中,设备的属性信息可以包括设备的类型信息、屏幕尺寸、屏幕方向和屏幕分辨率等信息,屏幕尺寸包括屏幕宽度和屏幕高度。
本实施例中,客户端可以调用UI_USER_INTERFACE_IDIOM函数,获取设备的类型信息;将[UIScreen mainScreen]bounds中的size属性的取值作为设备的屏幕尺寸;调用UIInterfaceOrientationIsPortrait函数,获取设备的屏幕方向;将[UIScreenmainScreen]currentMode中的size属性的取值作为设备的屏幕分辨率。
例如,设备的类型信息为“iPhone4”,屏幕尺寸为251pt*141pt,屏幕方向为横向,屏幕分辨率为1136px*640px。
步骤103,客户端判断设备是否为预设类型设备,如果是,则执行步骤104;如果不是,则执行步骤121。
具体地,客户端可以根据设备的类型信息,判断设备是否为预设类型设备,其中,预设类型设备可以为手机。
例如,设备的类型信息为“iPhone4”时,客户端可以判断出该设备为手机。
步骤104,客户端选取位于UI顶部的模块作为当前模块,将当前模块的显示宽度设置为设备的屏幕宽度,将当前模块的显示坐标设置为设备屏幕的左上角。
例如,设备的屏幕尺寸为251pt*141pt,设备屏幕的左上角为坐标原点时,客户端选取位于UI顶部的模块1作为当前模块,将当前模块的显示宽度设置为141pt,将当前模块的显示坐标设置为(0,0)。
步骤105,客户端根据当前模块的绘制信息和显示宽度,获取当前模块的显示高度。
具体地,当前模块的绘制信息为宽高比时,客户端可以获取当前模块的显示宽度除以当前模块的宽高比得到的结果,将该结果作为当前模块的显示高度;当前模块的绘制信息为高宽比时,客户端可以获取当前模块的显示宽度乘以当前模块的高宽比得到的结果,将该结果作为当前模块的显示高度。
例如,当前模块的绘制信息为宽高比,该宽高比为40%,当前模块的显示宽度为141pt,客户端计算出当前模块的显示高度=141pt/40%=352.5pt。
步骤106,客户端从当前模块中选取一个未被绘制的组件作为当前组件,根据当前模块的显示宽度、显示高度,以及当前组件的绘制信息,获取当前组件的显示宽度、显示高度和显示坐标。
其中,当前组件的显示坐标是以当前模块的左上角为坐标原点,当前组件的左上角的坐标,包括当前组件的显示纵坐标和显示横坐标。
相应地,客户端可以获取当前模块的显示宽度与当前组件的相对宽度的乘积,将该乘积作为当前组件的显示宽度;获取当前模块的显示高度与当前组件的相对高度的乘积,将该乘积作为当前组件的显示高度;获取当前模块的显示宽度与当前组件的相对横坐标的乘积,将该乘积作为当前组件的显示横坐标;获取当前模块的显示高度与当前组件的相对纵坐标的乘积,将该乘积作为当前组件的显示纵坐标。
例如,客户端选取当前模块中的组件1作为当前组件,当前模块的显示宽度为141pt,显示高度为352.5pt,显示坐标为(0,0),当前组件的绘制信息为(20%,10%,70%,30%),客户端计算出当前组件的显示宽度=70%*141pt=98.7pt,计算出当前组件的显示高度=30%*352.5pt=105.75pt,计算出当前组件的显示横坐标=20%*141pt=28.2pt,计算出当前组件的显示纵坐标=10%*352.5pt=35.25pt。
步骤107,客户端判断是否需要向当前组件中填充图片,如果是,则执行步骤109;否则,执行步骤108。
具体地,客户端可以判断当前组件的内容中是否包含图片信息,如果是,则确定需要向当前组件中填充图片;否则,确定不需要向当前组件中填充图片。
例如,当前组件的名称为Label,该组件的内容中包括以下信息:Label.Pic=@“demo.png”,客户端判断出当前组件的内容中包含图片信息“demo.png”,确定需要向当前组件中填充名称为demo、格式为png的图片。
步骤108,客户端根据当前组件的内容,获取需要填充到当前组件中的资源文件,根据获取到的资源文件以及当前组件的显示宽度、显示高度和显示坐标,绘制当前组件,并执行步骤118。
具体地,客户端可以将当前模块的左上角作为坐标原点,根据当前组件的显示宽度、显示高度和显示坐标,对当前组件进行定位,并将获取到的资源文件填充到当前组件中,对当前组件进行显示,从而实现对当前组件的绘制。
其中,资源文件可以为视频、文字等文件。
步骤109,客户端判断设备的屏幕密度是否大于预设密度值,如果是,则执行步骤110;否则,执行步骤114。
具体地,客户端可以直接获取设备的屏幕密度,并判断设备的屏幕密度是否大于预设密度值;也可以获取设备的屏幕分辨率和屏幕尺寸,根据设备的屏幕分辨率和屏幕尺寸获取设备的屏幕密度,并判断设备的屏幕密度是否大于预设密度值。
本实施例中,客户端可以根据以下公式计算设备的屏幕密度PPI:
其中,dp为设备的屏幕对角线的分辨率,wp为设备的屏幕横向分辨率,hp为设备的屏幕纵向分辨率,di为设备的屏幕对角线的长度。
例如,设备的屏幕分辨率为1136px*640px,设备的屏幕尺寸为251pt*141pt,预设密度值为300ppi时,客户端根据设备的屏幕分辨率和屏幕尺寸计算出设备的屏幕密度为326ppi,并确定设备的屏幕密度大于预设密度值。
步骤110,客户端根据当前组件的内容,获取对应的高分辨率图片。
具体他,客户端可以根据当前组件的内容中包含的图片信息,从本地存储的素材包中获取与该图片信息对应的高分辨率图片,也可以通过网络异步获取与该图片信息对应的高分辨率图片,还可以动态生成与该图片信息对应的高分辨率图片。
本实施例中,本地存储的素材包中可以保存有与同一图片信息对应的高分辨率图片和低分辨图片。
例如,当前组件的内容中包含图片信息“demo.png”,本地存储的素材包中保存有与“demo.png”对应的高分辨率图片“demo@2x.png”和低分辨图片“demo.png”,客户端从本地存储的素材包中获取高分辨率图片“demo@2x.png”。
步骤111,客户端判断是否需要向当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤113;否则,执行步骤112。
具体地,客户端可以判断当前组件的内容中是否包含除图片信息之外的其他资源文件的信息,如果是,则确定需要向当前组件中填充除图片之外的其他资源文件;否则,确定不需要向当前组件中填充除图片之外的其他资源文件。
步骤112,客户端根据获取到的高分辨率图片、当前组件的显示宽度、显示高度和显示坐标,绘制当前组件,并执行步骤118。
具体地,客户端可以将当前模块的左上角作为坐标原点,根据当前组件的显示宽度、显示高度和显示坐标,对当前组件进行定位,并将获取到的高分辨率图片填充到当前组件中,对当前组件进行显示,从而实现对当前组件的绘制。
例如,当前组件的显示坐标为(28.2,35.25),显示宽度为98.7pt,显示高度为105.75pt,客户端获取需要填充到当前组件中的高分辨率图片“demo@2x.png”,在坐标为(28.2,35.25)的位置,生成大小为(98.7,105.75)的组件,并将高分辨率图片“demo@2x.png”填充到该组件中。
步骤113,客户端根据当前组件的内容,获取除图片之外的其他资源文件,根据当前组件的显示宽度、显示高度和显示坐标,以及获取到的高分辨率图片和除图片之外的其他资源文件,绘制当前组件,并执行步骤118。
具体地,客户端可以将当前模块的左上角作为坐标原点,根据当前组件的显示宽度、显示高度和显示坐标,对当前组件进行定位,并将获取到的高分辨率图片以及其他资源文件填充到当前组件中,对当前组件进行显示,从而实现对当前组件的绘制。
步骤114,客户端根据当前组件的内容,获取对应的低分辨率图片。
具体他,客户端可以根据当前组件的内容中包含的图片信息,从本地存储的素材包中获取与该图片信息对应的低分辨率图片,也可以通过网络异步获取与该图片信息对应的低分辨率图片,还可以动态生成与该图片信息对应的低分辨率图片。
本实施例中,本地存储的素材包中可以保存有与同一图片信息对应的高分辨率图片和低分辨图片。
例如,当前组件的内容中包含图片信息“demo.png”,本地存储的素材包中保存有与“demo.png”对应的高分辨率图片“demo@2x.png”和低分辨图片“demo.png”,客户端从本地存储的素材包中获取低分辨率图片“demo.png”。
步骤115,客户端判断是否需要向当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤117;否则,执行步骤116。
步骤116,客户端根据获取到的低分辨率图片、当前组件的显示宽度、显示高度和显示坐标,绘制当前组件,并执行步骤118。
具体地,客户端可以将当前模块的左上角作为坐标原点,根据当前组件的显示宽度、显示高度和显示坐标,对当前组件进行定位,并将获取到的低分辨率图片填充到当前组件中,对当前组件进行显示,从而实现对当前组件的绘制。
步骤117,客户端根据当前组件的内容,获取除图片之外的其他资源文件,根据当前组件的显示宽度、显示高度和显示坐标,以及获取到的低分辨率图片和除图片之外的其他资源文件,绘制当前组件,并执行步骤118。
具体地,客户端可以将当前模块的左上角作为坐标原点,根据当前组件的显示宽度、显示高度和显示坐标,对当前组件进行定位,并将获取到的低分辨率图片以及其他资源文件填充到当前组件中,对当前组件进行显示,从而实现对当前组件的绘制。
步骤118,客户端判断当前模块中是否包含未被绘制的组件,如果是,则返回步骤106;否则,执行步骤119。
步骤119,客户端判断UI中是否包含未被处理过的模块,如果是,则执行步骤120;否则,执行步骤139。
步骤120,客户端获取当前模块的显示纵坐标与当前模块的显示高度相加得到的运算结果,选取UI中与当前模块相邻且位于当前模块下方的模块作为更新后的当前模块,将更新后的当前模块的显示纵坐标设置为上述运算结果,将更新后的当前模块的显示横坐标设置为零,将更新后的当前模块的显示宽度设置为设备的屏幕宽度,并返回步骤105。
例如,设备的屏幕尺寸为251pt*141pt,当前模块为模块1,当前模块的显示坐标为(0,0),当前模块的显示高度为352.5pt时,客户端获取当前模块的显示纵坐标与显示高度相加得到的结果,即,0+352.5pt=352.5pt,选取UI中与模块1相邻且位于模块1下方的模块2作为更新后的当前模块,将更新后的当前模块的显示坐标设置为(0,352.5pt),将更新后的当前模块的显示宽度设置为141pt。
步骤121,客户端对设备的屏幕方向进行判断,如果屏幕方向为竖屏,则返回步骤104;如果屏幕方向为横屏,则执行步骤122。
步骤122,客户端选取位于UI顶部的模块作为当前模块,将当前模块的显示宽度设置为设备的屏幕高度,将当前模块的显示坐标设置为设备屏幕的左上角。
例如,设备的屏幕尺寸为251pt*141pt,设备屏幕的左上角为坐标原点时,客户端选取位于UI顶部的模块1作为当前模块,将当前模块的显示宽度设置为251pt,将当前模块的显示坐标设置为(0,0)。
步骤123,客户端根据当前模块的绘制信息和显示宽度,获取当前模块的显示高度。
步骤124,客户端从当前模块中选取一个未被绘制的组件作为当前组件,根据当前模块的显示宽度、显示高度,以及当前组件的绘制信息,获取当前组件的显示宽度、显示高度和显示坐标。
步骤125,客户端判断是否需要向当前组件中填充图片,如果是,则执行步骤127;否则,执行步骤126。
步骤126,客户端根据当前组件的内容,获取需要填充到当前组件中的资源文件,根据获取到的资源文件以及当前组件的显示宽度、显示高度和显示坐标,绘制当前组件,并执行步骤136。
步骤127,客户端判断设备的屏幕密度是否大于预设密度值,如果是,则执行步骤128;否则,执行步骤132。
步骤128,客户端根据当前组件的内容,获取对应的高分辨率图片。
步骤129,客户端判断是否需要向当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤131;否则,执行步骤130。
步骤130,客户端将根据获取到的高分辨率图片、当前组件的显示宽度、显示高度和显示坐标,绘制当前组件,并执行步骤136。
步骤131,客户端根据当前组件的内容,获取除图片之外的其他资源文件,根据当前组件的显示宽度、显示高度和显示坐标,以及获取到的高分辨率图片和除图片之外的其他资源文件,绘制当前组件,并执行步骤136。
步骤132,客户端根据当前组件的内容,获取对应的低分辨率图片。
步骤133,客户端判断是否需要向当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤135;否则,执行步骤134。
步骤134,客户端将根据获取到的低分辨率图片、当前组件的显示宽度、显示高度和显示坐标,绘制当前组件,并执行步骤136。
步骤135,客户端根据当前组件的内容,获取除图片之外的其他资源文件,根据当前组件的显示宽度、显示高度和显示坐标,以及获取到的低分辨率图片和除图片之外的其他资源文件,绘制当前组件,并执行步骤136。
步骤136,客户端判断当前模块中是否包含未被绘制的组件,如果是,则返回步骤124;否则,执行步骤137。
步骤137,客户端判断UI中是否包含未被处理过的模块,如果是,则执行步骤138;否则,执行步骤139。
步骤138,客户端获取当前模块的显示纵坐标与当前模块的显示高度相加得到的运算结果,选取UI中与当前模块相邻且位于当前模块下方的模块作为更新后的当前模块,将更新后的当前模块的显示纵坐标设置为上述运算结果,将更新后的当前模块的显示横坐标设置为零,将更新后的当前模块的显示宽度设置为设备的屏幕高度,并返回步骤123。
步骤139,客户端监控设备的屏幕方向。
步骤140,客户端判断设备的屏幕方向是否发生变化,如果是,则返回步骤121;否则,返回步骤139。
本发明实施例中的客户端根据设备的屏幕尺寸和屏幕方向、UI中的各个组件的绘制信息绘制UI,能够对具有不同屏幕尺寸的设备进行屏幕适配和横竖屏切换,提高了屏幕适配和横竖屏切换的流畅度,减少了屏幕适配的工作量,提高了屏幕适配效率。
本发明的其他实施方式中,客户端也可以在后台预先获取并保存各个组件的竖屏显示信息和横屏显示信息,根据设备的屏幕方向选择相应的显示信息,并根据选择出的显示信息绘制UI中的各个组件。
如图2所示,为本发明实施例中的另一种屏幕适配的方法流程图,包括以下步骤:
步骤201,客户端启动,从服务器端获取UI数据包,对UI数据包进行解析,得到UI中的各个模块的绘制信息和各个组件的绘制信息。
其中,模块的绘制信息可以为模块的宽高比或高宽比,组件的绘制信息包括组件的相对坐标、组件的相对宽度和组件的相对高度,组件的相对坐标包括组件的相对横坐标和组件的相对纵坐标。
步骤202,客户端获取设备的屏幕尺寸和屏幕方向。
其中,屏幕尺寸包括屏幕宽度和屏幕高度。
步骤203,客户端根据设备的屏幕尺寸、UI中的各个模块的绘制信息和各个组件的绘制信息,获取并保存各个模块的竖屏显示坐标和横屏显示坐标,以及各个组件的竖屏显示信息和横屏显示信息。
其中,组件的竖屏显示信息包括组件的竖屏显示坐标、组件的竖屏显示宽度和组件的竖屏显示高度,组件的竖屏显示坐标包括组件的竖屏显示横坐标和组件的竖屏显示纵坐标;组件的横屏显示信息包括组件的横屏显示坐标、组件的横屏显示宽度和组件的横屏显示高度,组件的横屏显示坐标包括组件的横屏显示横坐标和组件的横屏显示纵坐标。
步骤204,客户端对设备的屏幕方向进行判断,如果屏幕方向为竖屏,则执行步骤205;如果屏幕方向为横屏,则执行步骤206。
步骤205,客户端根据各个模块的竖屏显示坐标和各个组件的竖屏显示信息绘制UI,并执行步骤207。
具体地,客户端可以分别将各个组件所属模块的左上角作为坐标原点,根据各个组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,分别对各个组件进行定位,并将对应的资源文件填充到各个组件中,对各个组件进行显示,从而实现对UI的绘制。
步骤206,客户端根据各个模块的横屏显示坐标和各个组件的横屏显示信息绘制UI,并执行步骤207。
具体地,客户端可以分别将各个组件所属模块的左上角作为坐标原点,根据各个组件的横屏显示宽度、横屏显示高度和横屏显示坐标,分别对各个组件进行定位,并将对应的资源文件填充到各个组件中,对各个组件进行显示,从而实现对UI的绘制。
步骤207,客户端监控设备的屏幕方向和各个组件的组件属性信息,当组件属性信息发生改变时,执行步骤208;当设备的屏幕方向发生改变时,执行步骤209。
步骤208,客户端对改变后的组件属性信息进行保存,并返回步骤207。
例如,当用户在UI中的输入框中输入“123”时,客户端监控到输入框组件的内容属性发生改变,对内容属性“123”进行保存。
步骤209,客户端对设备的屏幕方向进行判断,如果屏幕方向为竖屏,则执行步骤210;如果屏幕方向为横屏,则执行步骤213。
步骤210,客户端根据各个模块的竖屏显示坐标和各个组件的竖屏显示信息绘制UI。
步骤211,客户端判断自身是否保存有组件属性信息,如果是,则执行步骤212;否则,返回步骤207。
步骤212,客户端根据自身保存的组件属性信息,修改对应组件的属性,并返回步骤207。
例如,当客户端保存有输入框组件的内容属性“123”,客户端将对应的输入框组件的内容属性修改为“123”。
步骤213,客户端根据各个模块的横屏显示坐标和各个组件的横屏显示信息绘制UI,并返回211。
本发明实施例中,用户界面可以包括多个模块,且用户界面中的各个模块按照垂直方向排列,每个模块包含一个或多个组件,各个组件的竖屏显示信息包括各个组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,各个组件的横屏显示信息包括各个组件的横屏显示宽度、横屏显示高度和横屏显示坐标。
相应地,上述流程中,客户端获取并保存UI中的各个组件的竖屏显示信息的操作,可细化为如图3所示的流程图,包括以下步骤:
步骤301,客户端选取位于UI顶部的模块作为当前模块,将当前模块的竖屏显示宽度设置为设备的屏幕宽度,将当前模块的竖屏显示坐标设置为设备屏幕的左上角,并保存当前模块的竖屏显示坐标。
步骤302,客户端根据当前模块的绘制信息和竖屏显示宽度,获取当前模块的竖屏显示高度。
具体地,当前模块的绘制信息为宽高比时,客户端可以获取当前模块的竖屏显示宽度除以当前模块的宽高比得到的结果,将该结果作为当前模块的竖屏显示高度;当前模块的绘制信息为高宽比时,客户端可以获取当前模块的竖屏显示宽度乘以当前模块的高宽比得到的结果,将该结果作为当前模块的竖屏显示高度。
步骤303,客户端根据当前模块的竖屏显示宽度、竖屏显示高度,以及当前模块中的各个组件的绘制信息,获取并保存当前模块中的各个组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标。
具体地,客户端可以分别获取当前模块的竖屏显示宽度与当前模块中的各个组件的相对宽度的乘积,将获取到的乘积分别作为各个组件的竖屏显示宽度;分别获取当前模块的竖屏显示高度与当前模块中的各个组件的相对高度的乘积,将获取到的乘积分别作为当前模块中的各个组件的竖屏显示高度;分别获取当前模块的竖屏显示宽度与当前模块中的各个组件的相对横坐标的乘积,将获取到的乘积分别作为各个组件的竖屏显示横坐标;分别获取当前模块的竖屏显示高度与当前模块中的各个组件的相对纵坐标的乘积,将获取到的乘积分别作为各个组件的竖屏显示纵坐标。
步骤304,客户端判断UI中是否包含未被处理过的模块,如果是,则执行步骤305;否则,确定获取竖屏显示信息完毕。
步骤305,客户端获取当前模块的竖屏显示纵坐标与当前模块的竖屏显示高度相加得到的运算结果,选取UI中与当前模块相邻且位于当前模块下方的模块作为更新后的当前模块,将更新后的当前模块的竖屏显示纵坐标设置为上述运算结果,将更新后的当前模块的竖屏显示横坐标设置为零,将更新后的当前模块的竖屏显示宽度设置为设备的屏幕宽度,并返回步骤302。
相应地,客户端获取并保存UI中的各个组件的横屏显示信息的操作,可细化为如图4所示的流程图,包括以下步骤:
步骤401,客户端选取位于UI顶部的模块作为当前模块,将当前模块的横屏显示宽度设置为设备的屏幕高度,将当前模块的横屏显示坐标设置为设备屏幕的左上角。
步骤402,客户端根据当前模块的绘制信息和横屏显示宽度,获取当前模块的横屏显示高度。
具体地,当前模块的绘制信息为宽高比时,客户端可以获取当前模块的横屏显示宽度除以当前模块的宽高比得到的结果,将该结果作为当前模块的横屏显示高度;当前模块的绘制信息为高宽比时,客户端可以获取当前模块的横屏显示宽度乘以当前模块的高宽比得到的结果,将该结果作为当前模块的横屏显示高度。
步骤403,客户端根据当前模块的横屏显示宽度、横屏显示高度,以及当前模块中的各个组件的绘制信息,获取并保存当前模块中的各个组件的横屏显示宽度、横屏显示高度和横屏显示坐标。
具体地,客户端可以分别获取当前模块的横屏显示宽度与当前模块中的各个组件的相对宽度的乘积,将获取到的乘积分别作为各个组件的横屏显示宽度;分别获取当前模块的横屏显示高度与当前模块中的各个组件的相对高度的乘积,将获取到的乘积分别作为当前模块中的各个组件的横屏显示高度;分别获取当前模块的横屏显示宽度与当前模块中的各个组件的相对横坐标的乘积,将获取到的乘积分别作为各个组件的横屏显示横坐标;分别获取当前模块的横屏显示高度与当前模块中的各个组件的相对纵坐标的乘积,将获取到的乘积分别作为各个组件的横屏显示纵坐标。
步骤404,客户端判断UI中是否包含未被处理过的模块,如果是,则执行步骤405;否则,确定获取横屏显示信息完毕。
步骤405,客户端获取当前模块的横屏显示纵坐标与当前模块的横屏显示高度相加得到的运算结果,选取UI中与当前模块相邻且位于当前模块下方的模块作为更新后的当前模块,将更新后的当前模块的横屏显示纵坐标设置为上述运算结果,将更新后的当前模块的横屏显示横坐标设置为零,将更新后的当前模块的横屏显示宽度设置为设备的屏幕高度,并返回步骤402。
本发明实施例中的客户端预先根据设备的屏幕尺寸和UI中的各个组件的绘制信息获取并保存各个组件的竖屏显示信息和横屏显示信息,并根据设备的屏幕方向使用竖屏显示信息或横屏显示信息绘制各个组件,能够对具有不同屏幕尺寸的设备进行屏幕适配和横竖屏切换,提高了屏幕适配和横竖屏切换的流畅度,减少了屏幕适配的工作量,提高了屏幕适配效率。
需要说明的是,本发明的其他实施方式中,UI还可以只包括一个全局模块,该全局模块中包含UI中的所有组件。服务器端生成并保存的UI数据包中包含上述全局模块的绘制信息和该全局模块中的各个组件的绘制信息。
其中,全局模块的绘制信息可以为全局模块的宽高比或高宽比,组件的绘制信息包括组件的相对坐标、组件的相对宽度和组件的相对高度,组件的相对坐标包括组件的相对横坐标和组件的相对纵坐标。
本实施例中,全局模块的宽高比是该全局模块在UI效果图中的宽度与该全局模块在UI效果图中的高度的比值,全局模块的高宽比是该全局模块在UI效果图中的高度与该全局模块在UI效果图中的宽度的比值。组件的相对横坐标是该组件在全局模块中的横坐标与该全局模块在UI效果图中的宽度的比值,组件的相对纵坐标是该组件在全局模块中的纵坐标与该全局模块在UI效果图中的高度的比值,组件的相对宽度是该组件在UI效果图中的宽度与全局模块在UI效果图中的宽度的比值,组件的相对高度是该组件在UI效果图中的高度与全局模块在UI效果图中的高度的比值。
其中,全局模块在UI效果图中的宽度为UI效果图的总宽度,全局模块在UI效果图中的高度为UI效果图的总高度,组件在全局模块中的横坐标是以全局模块的左上角为坐标原点,该组件的左上角的横坐标;组件在全局模块中的纵坐标是以全局模块的左上角为坐标原点,该组件的左上角的纵坐标。
相应地,本发明实施例还提供了又一种屏幕适配的方法,如图5所示,包括以下步骤:
步骤501,客户端启动,从服务器端获取UI数据包,对UI数据包进行解析,得到UI中的全局模块的绘制信息和各个组件的绘制信息。
步骤502,客户端将全局模块的中心点设置为与界面视图的中心点相同,将界面视图的背景设置为黑色。
具体地,客户端可以通过将全局模块的center属性设置为与界面视图的center属性相同的方式,将全局模块的中心点设置为与界面视图的中心点相同;通过将界面视图的Background属性设置为预设值的方式,将界面视图的背景设置为黑色,其中,上述预设值可以为“Black Color”。
步骤503,客户端获取设备的属性信息。
其中,设备的属性信息可以包括设备的类型信息、屏幕尺寸、屏幕方向和屏幕分辨率等信息,屏幕尺寸包括屏幕宽度和屏幕高度。
步骤504,客户端对设备的屏幕方向进行判断,如果屏幕方向为竖屏,则执行步骤505;如果屏幕方向为横屏,则执行步骤509。
步骤505,客户端根据全局模块的绘制信息,对全局模块的宽高比进行判断,如果全局模块的宽高比小于设备的屏幕宽高比,则执行步骤506;如果全局模块的宽高比等于设备的屏幕宽高比,则执行步骤507;如果全局模块的宽高比大于设备的屏幕宽高比,则执行步骤508。
步骤506,客户端将全局模块的显示高度设置为设备的屏幕高度,根据全局模块的显示高度和绘制信息,获取全局模块的显示宽度,并执行步骤513。
步骤507,客户端将全局模块的显示高度设置为设备的屏幕高度,将全局模块的显示宽度设置为设备的屏幕宽度,并执行步骤513。
步骤508,客户端将全局模块的显示宽度设置为设备的屏幕宽度,根据全局模块的显示宽度和绘制信息,获取全局模块的显示高度,并执行步骤513。
步骤509,客户端根据全局模块的绘制信息,对全局模块的宽高比进行判断,如果全局模块的宽高比小于设备的屏幕高宽比,则执行步骤510;如果全局模块的宽高比等于设备的屏幕高宽比,则执行步骤511;如果全局模块的宽高比大于设备的屏幕高宽比,则执行步骤512。
步骤510,客户端将全局模块的显示高度设置为设备的屏幕宽度,根据全局模块的显示高度和绘制信息,获取全局模块的显示宽度,并执行步骤513。
步骤511,客户端将全局模块的显示高度设置为设备的屏幕宽度,将全局模块的显示宽度设置为设备的屏幕高度,并执行步骤513。
步骤512,客户端将全局模块的显示宽度设置为设备的屏幕高度,根据全局模块的显示宽度和绘制信息,获取全局模块的显示高度,并执行步骤513。
步骤513,客户端从全局模块中选取一个未被绘制的组件作为当前组件,根据全局模块的显示宽度、显示高度,以及当前组件的绘制信息,获取当前组件的显示宽度、显示高度和显示坐标。
步骤514,客户端判断是否需要向当前组件中填充图片,如果是,则执行步骤516;否则,执行步骤515。
步骤515,客户端根据当前组件的内容,获取需要填充到当前组件中的资源文件,根据获取到的资源文件以及当前组件的显示宽度、显示高度和显示坐标,绘制当前组件,并执行步骤525。
步骤516,客户端判断设备的屏幕密度是否大于预设密度值,如果是,则执行步骤517;否则,执行步骤521。
步骤517,客户端根据当前组件的内容,获取对应的高分辨率图片。
步骤518,客户端判断是否需要向当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤520;否则,执行步骤519。
步骤519,客户端将根据获取到的高分辨率图片、当前组件的显示宽度、显示高度和显示坐标,绘制当前组件,并执行步骤525。
步骤520,客户端根据当前组件的内容,获取除图片之外的其他资源文件,根据当前组件的显示宽度、显示高度和显示坐标,以及获取到的高分辨率图片和除图片之外的其他资源文件,绘制当前组件,并执行步骤525。
步骤521,客户端根据当前组件的内容,获取对应的低分辨率图片。
步骤522,客户端判断是否需要向当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤524;否则,执行步骤523。
步骤523,客户端将根据获取到的低分辨率图片、当前组件的显示宽度、显示高度和显示坐标,绘制当前组件,并执行步骤525。
步骤524,客户端根据当前组件的内容,获取除图片之外的其他资源文件,根据当前组件的显示宽度、显示高度和显示坐标,以及获取到的低分辨率图片和除图片之外的其他资源文件,绘制当前组件,并执行步骤525。
步骤525,客户端判断全局模块中是否包含未被绘制的组件,如果是,则返回步骤513;否则,执行步骤526。
步骤526,客户端监控设备的屏幕方向。
步骤527,客户端判断设备的屏幕方向是否发生变化,如果是,则返回步骤504;否则,返回步骤526。
本发明实施例中的客户端根据设备的屏幕尺寸和屏幕方向、UI中的模块和组件的绘制信息绘制UI,能够对具有不同屏幕尺寸的设备进行屏幕适配和横竖屏切换,并根据设备的屏幕密度显示相应分辨率的图片,提高了屏幕适配和横竖屏切换的流畅度,减少了屏幕适配的工作量,提高了屏幕适配效率和用户体验。
如图6所示,为本发明实施例中的一种屏幕适配的装置结构图,包括:
获取单元601,用于从服务器端获取用户界面数据包;
解析单元602,用于对获取单元601获取到的用户界面数据包进行解析,得到各个模块的绘制信息和各个组件的绘制信息,用户界面中的模块按照垂直方向排列,每个模块包含一个或多个组件;
第一判断单元603,用于对装置所在设备的屏幕方向进行判断;
处理单元604,用于在第一判断单元603判断出屏幕方向为竖屏时,将各个模块的显示宽度设置为设备的屏幕宽度,根据各个模块的显示宽度、各个模块的绘制信息、各个组件的绘制信息,获取各个组件的显示宽度、显示高度和显示坐标;根据各个组件的显示宽度、显示高度和显示坐标,以及需要填充到各个组件中的资源文件,绘制各个组件,并触发监控单元605;
在第一判断单元603判断出屏幕方向为横屏时,将各个模块的显示宽度设置为设备的屏幕高度,根据各个模块的显示宽度、各个模块的绘制信息、各个组件的绘制信息,获取各个组件的显示宽度、显示高度和显示坐标;根据各个组件的显示宽度、显示高度和显示坐标,以及需要填充到各个组件中的资源文件,绘制各个组件,并触发监控单元605;
监控单元605,用于监控设备的屏幕方向,并在监控到设备的屏幕方向发生变化时,触发第一判断单元603对设备的屏幕方向进行判断。
上述的装置,还包括:
第二判断单元606,用于判断设备是否为预设类型设备,如果是,则触发处理单元604将各个模块的显示宽度设置为设备的屏幕宽度,根据各个模块的显示宽度、各个模块的绘制信息、各个组件的绘制信息,获取各个组件的显示宽度、显示高度和显示坐标;根据各个组件的显示宽度、显示高度和显示坐标,以及需要填充到各个组件中的资源文件,绘制各个组件,并触发监控单元605;如果不是,则触发第一判断单元603对设备的屏幕方向进行判断。
上述处理单元604,具体用于在第一判断单元603判断出屏幕方向为竖屏时,执行以下操作:
B1、选取位于用户界面顶部的模块作为当前模块,将当前模块的显示坐标设置为设备屏幕的左上角,将当前模块的显示宽度设置为设备的屏幕宽度,根据当前模块的绘制信息和显示宽度,获取当前模块的显示高度;
B2、从当前模块中选取一个未被绘制的组件作为当前组件,根据当前模块的显示宽度、显示高度,以及当前组件的绘制信息,获取当前组件的显示宽度、显示高度和显示坐标;
B3、根据当前组件的显示宽度、显示高度和显示坐标,以及需要填充到当前组件中的资源文件,绘制当前组件;
B4、判断当前模块中是否包含未被绘制的组件,如果是,则返回步骤B2;否则,执行步骤B5;
B5、判断用户界面中是否包含未被处理过的模块,如果是,则执行步骤B6;否则,触发监控单元605;
B6、获取当前模块的显示纵坐标与当前模块的显示高度相加得到的运算结果,选取用户界面中与当前模块相邻且位于当前模块下方的模块作为更新后的当前模块;
B7、将当前模块的显示纵坐标设置为运算结果,将当前模块的显示横坐标设置为零,将当前模块的显示宽度设置为设备的屏幕宽度,根据当前模块的绘制信息和显示宽度,获取当前模块的显示高度,并返回步骤B2。
上述处理单元604,具体用于在第一判断单元603判断出屏幕方向为横屏时,执行以下操作:
C1、选取位于用户界面顶部的模块作为当前模块,将当前模块的显示坐标设置为设备屏幕的左上角,将当前模块的显示宽度设置为设备的屏幕高度,根据当前模块的绘制信息和显示宽度,获取当前模块的显示高度;
C2、从当前模块中选取一个未被绘制的组件作为当前组件,根据当前模块的显示宽度、显示高度,以及当前组件的绘制信息,获取当前组件的显示宽度、显示高度和显示坐标;
C3、根据当前组件的显示宽度、显示高度和显示坐标,以及需要填充到当前组件中的资源文件,绘制当前组件;
C4、判断当前模块中是否包含未被绘制的组件,如果是,则返回步骤C2;否则,执行步骤C5;
C5、判断用户界面中是否包含未被处理过的模块,如果是,则执行步骤C6;否则,触发监控单元605;
C6、获取当前模块的显示纵坐标与当前模块的显示高度相加得到的运算结果,选取用户界面中与当前模块相邻且位于当前模块下方的模块作为更新后的当前模块;
C7、将当前模块的显示纵坐标设置为运算结果,将当前模块的显示横坐标设置为零,将当前模块的显示宽度设置为设备的屏幕高度,根据当前模块的绘制信息和显示宽度,获取当前模块的显示高度,并返回步骤C2。
其中,上述当前组件的绘制信息包括当前组件的相对坐标、相对宽度和相对高度,当前组件的相对坐标包括当前组件的相对横坐标和相对纵坐标;当前组件的显示坐标是以当前模块的左上角为坐标原点,当前组件的左上角的坐标;当前组件的显示坐标包括当前组件的显示纵坐标和显示横坐标;
相应地,上述处理单元604根据当前模块的显示宽度、显示高度,以及当前组件的绘制信息,获取当前组件的显示宽度、显示高度和显示坐标,具体为:
处理单元604将当前模块的显示宽度与当前组件的相对宽度相乘,得到当前组件的显示宽度;将当前模块的显示高度与当前组件的相对高度相乘,得到当前组件的显示高度;将当前模块的显示宽度与当前组件的相对横坐标相乘,得到当前组件的显示横坐标;将当前模块的显示高度与当前组件的相对纵坐标相乘,得到当前组件的显示纵坐标。
上述处理单元604根据当前组件的显示宽度、显示高度和显示坐标,以及需要填充到当前组件中的资源文件,绘制当前组件,具体为:
处理单元604执行以下操作:
D1、判断是否需要向当前组件中填充图片,如果是,则执行步骤D3;否则,执行步骤D2;
D2、根据当前组件的内容,获取需要填充到当前组件中的资源文件,根据资源文件以及当前组件的显示宽度、显示高度和显示坐标,绘制当前组件;
D3、判断设备的屏幕密度是否大于预设密度值,如果是,则执行步骤D4;否则,执行步骤D7;
D4、根据当前组件的内容,获取对应的高分辨率图片,判断是否需要向当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤D6;否则,执行步骤D5;
D5、根据高分辨率图片、当前组件的显示宽度、显示高度和显示坐标,绘制当前组件;
D6、根据当前组件的内容,获取其他资源文件,根据当前组件的显示宽度、显示高度和显示坐标,以及高分辨率图片和其他资源文件,绘制当前组件;
D7、根据当前组件的内容,获取对应的低分辨率图片,判断是否需要向当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤D9;否则,执行步骤D8;
D8、根据低分辨率图片、当前组件的显示宽度、显示高度和显示坐标,绘制当前组件;
D9、根据当前组件的内容,获取除图片之外的其他资源文件,根据当前组件的显示宽度、显示高度和显示坐标,以及低分辨率图片和其他资源文件,绘制当前组件。
上述处理单元604根据资源文件以及当前组件的显示宽度、显示高度和显示坐标,绘制当前组件,具体为:
处理单元604将当前模块的左上角作为坐标原点,根据当前组件的显示宽度、显示高度和显示坐标,对当前组件进行定位,并将资源文件填充到当前组件中,对当前组件进行显示;
上述处理单元604根据高分辨率图片、当前组件的显示宽度、显示高度和显示坐标,绘制当前组件,具体为:
处理单元604将当前模块的左上角作为坐标原点,根据当前组件的显示宽度、显示高度和显示坐标,对当前组件进行定位,并将高分辨率图片填充到当前组件中,对当前组件进行显示;
上述处理单元604根据当前组件的显示宽度、显示高度和显示坐标,以及高分辨率图片和其他资源文件,绘制当前组件,具体为:
处理单元604将当前模块的左上角作为坐标原点,根据当前组件的显示宽度、显示高度和显示坐标,对当前组件进行定位,并将高分辨率图片以及其他资源文件填充到当前组件中,对当前组件进行显示;
上述处理单元604根据低分辨率图片、当前组件的显示宽度、显示高度和显示坐标,绘制当前组件,具体为:
处理单元604将当前模块的左上角作为坐标原点,根据当前组件的显示宽度、显示高度和显示坐标,对当前组件进行定位,并将低分辨率图片填充到当前组件中,对当前组件进行显示;
上述处理单元604根据当前组件的显示宽度、显示高度和显示坐标,以及低分辨率图片和其他资源文件,绘制当前组件,具体为:
处理单元604将当前模块的左上角作为坐标原点,根据当前组件的显示宽度、显示高度和显示坐标,对当前组件进行定位,并将低分辨率图片以及其他资源文件填充到当前组件中,对当前组件进行显示。
上述处理单元604根据当前组件的内容,获取对应的高分辨率图片,具体为:
处理单元604根据当前组件的内容中包含的图片信息,从本地存储的素材包中获取与图片信息对应的高分辨率图片;
或者,通过网络异步获取与图片信息对应的高分辨率图片;
或者,动态生成与图片信息对应的高分辨率图片;
上述处理单元604根据当前组件的内容,获取对应的低分辨率图片,具体为:
处理单元604根据当前组件的内容中包含的图片信息,从本地存储的素材包中获取与图片信息对应的低分辨率图片;
或者,通过网络异步获取与图片信息对应的低分辨率图片;
或者,动态生成与图片信息对应的低分辨率图片。
本发明实施例中的装置根据所在设备的屏幕尺寸和屏幕方向、UI中的模块和组件的绘制信息绘制UI,能够对具有不同屏幕尺寸的设备进行屏幕适配和横竖屏切换,并根据设备的屏幕密度显示相应分辨率的图片,提高了屏幕适配和横竖屏切换的流畅度,减少了屏幕适配的工作量,提高了屏幕适配效率和用户体验。
如图7所示,为本发明实施例中的另一种屏幕适配的装置结构图,包括:
获取单元701,用于从服务器端获取用户界面数据包;
解析单元702,用于对获取单元701获取到的用户界面数据包进行解析,得到全局模块的绘制信息和各个组件的绘制信息,全局模块包含用户界面中的所有组件;
第一判断单元703,用于对装置所在设备的屏幕方向进行判断;
设置单元704,用于在第一判断单元703判断出屏幕方向为竖屏时,将全局模块的显示宽度设置为设备的屏幕宽度,根据全局模块的显示宽度和全局模块的绘制信息,获取全局模块的显示高度,并触发处理单元705;
在第一判断单元703判断出屏幕方向为横屏时,将全局模块的显示高度设置为设备的屏幕宽度,根据全局模块的显示高度和全局模块的绘制信息,获取全局模块的显示宽度,并触发处理单元705;
上述设置单元704,还用于将全局模块的中心点设置为与界面视图的中心点相同。
上述设置单元704,还用于将界面视图的背景设置为黑色。
处理单元705,用于根据全局模块的显示宽度、全局模块的显示高度、各个组件的绘制信息,获取各个组件的显示宽度、显示高度和显示坐标;根据各个组件的显示宽度、显示高度和显示坐标,以及需要填充到各个组件中的资源文件,绘制各个组件,并触发监控单元706;
监控单元706,用于监控设备的屏幕方向,并在监控到设备的屏幕方向发生变化时,触发第一判断单元703对设备的屏幕方向进行判断。
上述的装置,还包括:
第二判断单元707,用于在第一判断单元703判断出屏幕方向为竖屏时,根据全局模块的绘制信息,对全局模块的宽高比进行判断;
相应地,上述设置单元704,具体用于在第二判断单元707判断出全局模块的宽高比小于设备的屏幕宽高比时,将全局模块的显示高度设置为设备的屏幕高度,根据全局模块的显示高度和全局模块的绘制信息,获取全局模块的显示宽度,并触发处理单元705;
在第二判断单元707判断出全局模块的宽高比等于设备的屏幕宽高比时,将全局模块的显示高度设置为设备的屏幕高度,将全局模块的显示宽度设置为设备的屏幕宽度,并触发处理单元705;
在第二判断单元707判断出全局模块的宽高比大于设备的屏幕宽高比时,将全局模块的显示宽度设置为设备的屏幕宽度,根据全局模块的显示宽度和全局模块的绘制信息,获取全局模块的显示高度,并触发处理单元705。
上述的装置,还包括:
第三判断单元708,用于在第一判断单元703判断出屏幕方向为横屏时,根据全局模块的绘制信息,对全局模块的宽高比进行判断;
相应地,上述设置单元704,具体用于在第三判断单元708判断出全局模块的宽高比等于设备的屏幕高宽比时,将全局模块的显示高度设置为设备的屏幕宽度,将全局模块的显示宽度设置为设备的屏幕高度,并触发处理单元705;
在第三判断单元708判断出全局模块的宽高比大于设备的屏幕高宽比时,将全局模块的显示宽度设置为设备的屏幕高度,根据全局模块的显示宽度和全局模块的绘制信息,获取全局模块的显示高度,并触发处理单元705;
在第三判断单元708判断出全局模块的宽高比小于设备的屏幕高宽比时,将全局模块的显示高度设置为设备的屏幕宽度,根据全局模块的显示高度和全局模块的绘制信息,获取全局模块的显示宽度,并触发处理单元705。
其中,上述全局模块的绘制信息为全局模块的宽高比或高宽比;
相应地,上述设置单元704根据全局模块的显示宽度和全局模块的绘制信息,获取全局模块的显示高度,具体为:
设置单元704将全局模块的显示宽度除以全局模块的宽高比,得到全局模块的显示高度;
或者,
将全局模块的显示宽度乘以全局模块的高宽比,得到全局模块的显示高度;
上述设置单元704根据全局模块的显示高度和全局模块的绘制信息,获取全局模块的显示宽度,具体为:
设置单元704将全局模块的显示高度乘以全局模块的宽高比,得到全局模块的显示宽度;
或者,
将全局模块的显示高度除以全局模块的高宽比,得到全局模块的显示宽度。
优选地,上述处理单元705,具体用于执行以下操作:
F1、从全局模块中选取一个未被绘制的组件作为当前组件,根据全局模块的显示宽度、显示高度,以及当前组件的绘制信息,获取当前组件的显示宽度、显示高度和显示坐标;
F2、根据当前组件的显示宽度、显示高度和显示坐标,以及需要填充到当前组件中的资源文件,绘制当前组件;
F3、判断全局模块中是否包含未被绘制的组件,如果是,则返回步骤F1;否则,触发监控单元706。
其中,当前组件的绘制信息包括当前组件的相对坐标、相对宽度和相对高度,当前组件的相对坐标包括当前组件的相对横坐标和相对纵坐标;当前组件的显示坐标是以全局模块的左上角为坐标原点,当前组件的左上角的坐标;当前组件的显示坐标包括当前组件的显示纵坐标和显示横坐标;
相应地,上述处理单元705根据全局模块的显示宽度、显示高度,以及当前组件的绘制信息,获取当前组件的显示宽度、显示高度和显示坐标,具体为:
处理单元705将全局模块的显示宽度与当前组件的相对宽度相乘,得到当前组件的显示宽度;将全局模块的显示高度与当前组件的相对高度相乘,得到当前组件的显示高度;将全局模块的显示宽度与当前组件的相对横坐标相乘,得到当前组件的显示横坐标;将全局模块的显示高度与当前组件的相对纵坐标相乘,得到当前组件的显示纵坐标。
上述处理单元705执行步骤F2,具体为:
处理单元705执行以下操作:
G1、判断是否需要向当前组件中填充图片,如果是,则执行步骤G3;否则,执行步骤G2;
G2、根据当前组件的内容,获取需要填充到当前组件中的资源文件,根据资源文件以及当前组件的显示宽度、显示高度和显示坐标,绘制当前组件;
G3、判断设备的屏幕密度是否大于预设密度值,如果是,则执行步骤G4;否则,执行步骤G7;
G4、根据当前组件的内容,获取对应的高分辨率图片,判断是否需要向当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤G6;否则,执行步骤G5;
G5、根据高分辨率图片、当前组件的显示宽度、显示高度和显示坐标,绘制当前组件;
G6、根据当前组件的内容,获取其他资源文件,根据当前组件的显示宽度、显示高度和显示坐标,以及高分辨率图片和其他资源文件,绘制当前组件;
G7、根据当前组件的内容,获取对应的低分辨率图片,判断是否需要向当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤G9;否则,执行步骤G8;
G8、根据低分辨率图片、当前组件的显示宽度、显示高度和显示坐标,绘制当前组件;
G9、根据当前组件的内容,获取除图片之外的其他资源文件,根据当前组件的显示宽度、显示高度和显示坐标,以及低分辨率图片和其他资源文件,绘制当前组件。
上述处理单元705根据资源文件以及当前组件的显示宽度、显示高度和显示坐标,绘制当前组件,具体为:
处理单元705将当前模块的左上角作为坐标原点,根据当前组件的显示宽度、显示高度和显示坐标,对当前组件进行定位,并将资源文件填充到当前组件中,对当前组件进行显示;
上述处理单元705根据高分辨率图片、当前组件的显示宽度、显示高度和显示坐标,绘制当前组件,具体为:
处理单元705将当前模块的左上角作为坐标原点,根据当前组件的显示宽度、显示高度和显示坐标,对当前组件进行定位,并将高分辨率图片填充到当前组件中,对当前组件进行显示;
上述处理单元705根据当前组件的显示宽度、显示高度和显示坐标,以及高分辨率图片和其他资源文件,绘制当前组件,具体为:
处理单元705将当前模块的左上角作为坐标原点,根据当前组件的显示宽度、显示高度和显示坐标,对当前组件进行定位,并将高分辨率图片以及其他资源文件填充到当前组件中,对当前组件进行显示;
上述处理单元705根据低分辨率图片、当前组件的显示宽度、显示高度和显示坐标,绘制当前组件,具体为:
处理单元705将当前模块的左上角作为坐标原点,根据当前组件的显示宽度、显示高度和显示坐标,对当前组件进行定位,并将低分辨率图片填充到当前组件中,对当前组件进行显示;
上述处理单元705根据当前组件的显示宽度、显示高度和显示坐标,以及低分辨率图片和其他资源文件,绘制当前组件,具体为:
处理单元705将当前模块的左上角作为坐标原点,根据当前组件的显示宽度、显示高度和显示坐标,对当前组件进行定位,并将低分辨率图片以及其他资源文件填充到当前组件中,对当前组件进行显示。
本发明实施例中的装置根据所在设备的屏幕尺寸和UI中的各个组件的绘制信息获取并保存各个组件的竖屏显示信息和横屏显示信息,并根据设备的屏幕方向使用竖屏显示信息或横屏显示信息绘制各个组件,能够对具有不同屏幕尺寸的设备进行屏幕适配和横竖屏切换,提高了屏幕适配和横竖屏切换的流畅度,减少了屏幕适配的工作量,提高了屏幕适配效率。
如图8所示,为本发明实施例中的又一种屏幕适配的装置结构图,包括:
第一获取单元801,用于从服务器端获取用户界面数据包;
解析单元802,用于对第一获取单元801获取到的用户界面数据包进行解析,得到各个模块的绘制信息和各个组件的绘制信息;
第二获取单元803,用于根据装置所在设备的屏幕尺寸、各个模块的绘制信息和各个组件的绘制信息,获取并保存各个组件的竖屏显示信息;
第三获取单元804,用于根据装置所在设备的屏幕尺寸、各个模块的绘制信息和各个组件的绘制信息,获取并保存各个组件的横屏显示信息;
第一判断单元805,用于对设备的屏幕方向进行判断;
绘制单元806,用于在第一判断单元805判断出屏幕方向为竖屏时,根据各个组件的竖屏显示信息绘制各个组件,并触发监控单元807;
在第一判断单元805判断出屏幕方向为横屏时,根据各个组件的横屏显示信息绘制各个组件,并触发监控单元807;
监控单元807,用于监控设备的屏幕方向,并在监控到设备的屏幕方向发生变化时,触发第一判断单元805对设备的屏幕方向进行判断。
上述监控单元807,还用于监控各个组件的组件属性信息,并在监控到组件属性信息发生改变时,对改变后的组件属性信息进行保存;
相应地,上述的装置,还包括:
第二判断单元808,用于在监控单元807监控到设备的屏幕方向发生变化时,判断监控单元807是否保存有组件属性信息;
绘制单元806,还用于在第二判断单元808判断出监控单元807保存有组件属性信息时,根据组件属性信息修改对应组件的属性,删除组件属性信息。
其中,用户界面包括多个模块,用户界面中的各个模块按照垂直方向排列,每个模块包含一个或多个组件;各个组件的竖屏显示信息包括各个组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,各个组件的横屏显示信息包括各个组件的横屏显示宽度、横屏显示高度和横屏显示坐标;
相应地,上述第二获取单元803,具体用于执行以下操作:
K1、选取位于用户界面顶部的模块作为当前模块,将当前模块的竖屏显示坐标设置为设备屏幕的左上角,保存当前模块的竖屏显示坐标,将当前模块的竖屏显示宽度设置为设备的屏幕宽度,根据当前模块的绘制信息和竖屏显示宽度,获取当前模块的竖屏显示高度;
K2、根据当前模块的竖屏显示宽度、竖屏显示高度,以及当前模块中的各个组件的绘制信息,获取并保存当前模块中的各个组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标;
K3、判断用户界面中是否包含未被处理过的模块,如果是,则执行步骤K4;否则,确定获取竖屏显示信息完毕;
K4、获取当前模块的竖屏显示纵坐标与当前模块的竖屏显示高度相加得到的运算结果,选取用户界面中与当前模块相邻且位于当前模块下方的模块作为更新后的当前模块;
K5、将当前模块的竖屏显示纵坐标设置为运算结果,将当前模块的竖屏显示横坐标设置为零,将当前模块的竖屏显示宽度设置为设备的屏幕宽度,根据当前模块的绘制信息和竖屏显示宽度,获取当前模块的竖屏显示高度,并返回步骤K2;
上述第三获取单元804,具体用于执行以下操作:
L1、选取位于用户界面顶部的模块作为当前模块,将当前模块的横屏显示坐标设置为设备屏幕的左上角,保存当前模块的横屏显示坐标,将当前模块的横屏显示宽度设置为设备的屏幕高度,根据当前模块的绘制信息和横屏显示宽度,获取当前模块的横屏显示高度;
L2、根据当前模块的横屏显示宽度、横屏显示高度,以及当前模块中的各个组件的绘制信息,获取并保存当前模块中的各个组件的横屏显示宽度、横屏显示高度和横屏显示坐标;
L3、判断用户界面中是否包含未被处理过的模块,如果是,则执行步骤L4;否则,确定获取横屏显示信息完毕;
L4、获取当前模块的显示纵坐标与当前模块的横屏显示高度相加得到的运算结果,选取用户界面中与当前模块相邻且位于当前模块下方的模块作为更新后的当前模块;
L5、将当前模块的横屏显示纵坐标设置为运算结果,将当前模块的横屏显示横坐标设置为零,将当前模块的横屏显示宽度设置为设备的屏幕高度,根据当前模块的绘制信息和横屏显示宽度,获取当前模块的横屏显示高度,并返回步骤L2。
其中,上述当前模块的绘制信息为当前模块的宽高比或高宽比;
相应地,上述第二获取单元803根据当前模块的绘制信息和竖屏显示宽度,获取当前模块的竖屏显示高度,具体为:
第二获取单元803将当前模块的竖屏显示宽度除以当前模块的宽高比,得到当前模块的竖屏显示高度;
或者,
将当前模块的竖屏显示宽度乘以当前模块的高宽比,得到当前模块的竖屏显示高度;
上述第三获取单元804根据当前模块的绘制信息和横屏显示宽度,获取当前模块的横屏显示高度,具体为:
第三获取单元804将当前模块的横屏显示宽度除以当前模块的宽高比,得到当前模块的横屏显示高度;
或者,
将当前模块的横屏显示宽度乘以当前模块的高宽比,得到当前模块的横屏显示高度。
其中,上述各个组件的绘制信息包括各个组件的相对坐标、相对宽度和相对高度,各个组件的相对坐标包括各个组件的相对横坐标和相对纵坐标;各个组件的竖屏显示坐标和横屏显示坐标均是以当前模块的左上角为坐标原点,各个组件的左上角的坐标;各个组件的竖屏显示坐标包括各个组件的竖屏显示纵坐标和竖屏显示横坐标;各个组件的横屏显示坐标包括各个组件的横屏显示纵坐标和横屏显示横坐标;
相应地,上述第二获取单元803根据当前模块的竖屏显示宽度、竖屏显示高度,以及当前模块中的各个组件的绘制信息,获取当前模块中的各个组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,具体为:
第二获取单元803将当前模块的竖屏显示宽度分别与当前模块中的各个组件的相对宽度相乘,得到当前模块中的各个组件的竖屏显示宽度;将当前模块的竖屏显示高度与当前模块中的各个组件的相对高度相乘,得到当前模块中的各个组件的竖屏显示高度;将当前模块的竖屏显示宽度分别与当前模块中的各个组件的相对横坐标相乘,得到当前模块中的各个组件的竖屏显示横坐标;将当前模块的竖屏显示高度分别与当前模块中的各个组件的相对纵坐标相乘,得到各个组件的竖屏显示纵坐标;
上述第三获取单元804根据当前模块的横屏显示宽度、横屏显示高度,以及当前模块中的各个组件的绘制信息,获取当前模块中的各个组件的横屏显示宽度、横屏显示高度和横屏显示坐标,具体为:
第三获取单元804将当前模块的横屏显示宽度分别与当前模块中的各个组件的相对宽度相乘,得到当前模块中的各个组件的横屏显示宽度;将当前模块的横屏显示高度与当前模块中的各个组件的相对高度相乘,得到当前模块中的各个组件的横屏显示高度;将当前模块的横屏显示宽度分别与当前模块中的各个组件的相对横坐标相乘,得到当前模块中的各个组件的横屏显示横坐标;将当前模块的横屏显示高度分别与当前模块中的各个组件的相对纵坐标相乘,得到各个组件的横屏显示纵坐标。
优选地,上述装置,还包括:
第四获取单元809,用于根据设备的屏幕尺寸和解析单元802解析得到的各个模块的绘制信息,获取并保存各个模块的竖屏显示坐标和横屏显示坐标;
相应地,上述绘制单元806,具体用于在第一判断单元805判断出屏幕方向为竖屏时,执行以下操作:
M1、从用户界面中选取一个未被处理过的模块作为当前模块,从当前模块中选取一个未被绘制的组件作为当前组件;
M2、判断是否需要向当前组件中填充图片,如果是,则执行步骤M4;否则,执行步骤M3;
M3、根据当前组件的内容,获取需要填充到当前组件中的资源文件,根据资源文件、当前模块的竖屏显示坐标以及当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制当前组件,并执行步骤M11;
M4、判断设备的屏幕密度是否大于预设密度值,如果是,则执行步骤M5;否则,执行步骤M8;
M5、根据当前组件的内容,获取对应的高分辨率图片,判断是否需要向当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤M7;否则,执行步骤M6;
M6、根据高分辨率图片、当前模块的竖屏显示坐标以及当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制当前组件,并执行步骤M11;
M7、根据当前组件的内容,获取其他资源文件,根据当前模块的竖屏显示坐标、当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及高分辨率图片和其他资源文件,绘制当前组件,并执行步骤M11;
M8、根据当前组件的内容,获取对应的低分辨率图片,判断是否需要向当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤M10;否则,执行步骤M9;
M9、根据低分辨率图片、当前模块的竖屏显示坐标以及当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制当前组件,并执行步骤M11;
M10、根据当前组件的内容,获取除图片之外的其他资源文件,根据当前模块的竖屏显示坐标、当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及低分辨率图片和其他资源文件,绘制当前组件,并执行步骤M11;
M11、判断当前模块中是否包含未被绘制的组件,如果是,则从当前模块中选取一个未被绘制的组件作为当前组件,并返回步骤M2;否则,执行步骤M12;
M12、判断用户界面中是否包含未被处理过的模块,如果是,则返回步骤M1;否则,确定绘制组件完毕;
以及,
在第一判断单元805判断出屏幕方向为横屏时,执行以下操作:
N1、从用户界面中选取一个未被处理过的模块作为当前模块,从当前模块中选取一个未被绘制的组件作为当前组件;
N2、判断是否需要向当前组件中填充图片,如果是,则执行步骤N4;否则,执行步骤N3;
N3、根据当前组件的内容,获取需要填充到当前组件中的资源文件,根据资源文件、当前模块的横屏显示坐标以及当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制当前组件,并执行步骤N11;
N4、判断设备的屏幕密度是否大于预设密度值,如果是,则执行步骤N5;否则,执行步骤N8;
N5、根据当前组件的内容,获取对应的高分辨率图片,判断是否需要向当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤N7;否则,执行步骤N6;
N6、根据高分辨率图片、当前模块的横屏显示坐标以及当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制当前组件,并执行步骤N11;
N7、根据当前组件的内容,获取其他资源文件,根据当前模块的横屏显示坐标、当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及高分辨率图片和其他资源文件,绘制当前组件,并执行步骤N11;
N8、根据当前组件的内容,获取对应的低分辨率图片,判断是否需要向当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤N10;否则,执行步骤N9;
N9、根据低分辨率图片、当前模块的横屏显示坐标以及当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制当前组件,并执行步骤N11;
N10、根据当前组件的内容,获取除图片之外的其他资源文件,根据当前模块的横屏显示坐标、当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及低分辨率图片和其他资源文件,绘制当前组件,并执行步骤N11;
N11、判断当前模块中是否包含未被绘制的组件,如果是,则从当前模块中选取一个未被绘制的组件作为当前组件,并返回步骤N2;否则,执行步骤N12;
N12、判断用户界面中是否包含未被处理过的模块,如果是,则返回步骤N1;否则,确定绘制组件完毕。
其中,上述绘制单元806根据资源文件、当前模块的竖屏显示坐标以及当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制当前组件,具体为:
绘制单元806根据当前模块的竖屏显示坐标,确定当前模块的左上角的位置,并将当前模块的左上角作为坐标原点,根据当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对当前组件进行定位,并将资源文件填充到当前组件中,对当前组件进行显示;
上述绘制单元806根据高分辨率图片、当前模块的竖屏显示坐标以及当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制当前组件,具体为:
绘制单元806根据当前模块的竖屏显示坐标,确定当前模块的左上角的位置,并将当前模块的左上角作为坐标原点,根据当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对当前组件进行定位,并将高分辨率图片填充到当前组件中,对当前组件进行显示;
上述绘制单元806根据当前模块的竖屏显示坐标、当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及高分辨率图片和其他资源文件,绘制当前组件,具体为:
绘制单元806根据当前模块的竖屏显示坐标,确定当前模块的左上角的位置,并将当前模块的左上角作为坐标原点,根据当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对当前组件进行定位,并将高分辨率图片以及其他资源文件填充到当前组件中,对当前组件进行显示;
上述绘制单元806根据低分辨率图片、当前模块的竖屏显示坐标以及当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制当前组件,具体为:
绘制单元806根据当前模块的竖屏显示坐标,确定当前模块的左上角的位置,并将当前模块的左上角作为坐标原点,根据当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对当前组件进行定位,并将低分辨率图片填充到当前组件中,对当前组件进行显示;
上述绘制单元806根据当前模块的竖屏显示坐标、当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及低分辨率图片和其他资源文件,绘制当前组件,具体为:
绘制单元806根据当前模块的竖屏显示坐标,确定当前模块的左上角的位置,并将当前模块的左上角作为坐标原点,根据当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对当前组件进行定位,并将低分辨率图片以及其他资源文件填充到当前组件中,对当前组件进行显示;
上述绘制单元806根据资源文件、当前模块的横屏显示坐标以及当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制当前组件,具体为:
绘制单元806根据当前模块的横屏显示坐标,确定当前模块的左上角的位置,并将当前模块的左上角作为坐标原点,根据当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对当前组件进行定位,并将资源文件填充到当前组件中,对当前组件进行显示;
上述绘制单元806根据高分辨率图片、当前模块的横屏显示坐标以及当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制当前组件,具体为:
绘制单元806根据当前模块的横屏显示坐标,确定当前模块的左上角的位置,并将当前模块的左上角作为坐标原点,根据当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对当前组件进行定位,并将高分辨率图片填充到当前组件中,对当前组件进行显示;
上述绘制单元806根据当前模块的横屏显示坐标、当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及高分辨率图片和其他资源文件,绘制当前组件,具体为:
绘制单元806根据当前模块的横屏显示坐标,确定当前模块的左上角的位置,并将当前模块的左上角作为坐标原点,根据当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对当前组件进行定位,并将高分辨率图片以及其他资源文件填充到当前组件中,对当前组件进行显示;
上述绘制单元806根据低分辨率图片、当前模块的横屏显示坐标以及当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制当前组件,具体为:
绘制单元806根据当前模块的横屏显示坐标,确定当前模块的左上角的位置,并将当前模块的左上角作为坐标原点,根据当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对当前组件进行定位,并将低分辨率图片填充到当前组件中,对当前组件进行显示;
上述绘制单元806根据当前模块的横屏显示坐标、当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及低分辨率图片和其他资源文件,绘制当前组件,具体为:
绘制单元806根据当前模块的横屏显示坐标,确定当前模块的左上角的位置,并将当前模块的左上角作为坐标原点,根据当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对当前组件进行定位,并将低分辨率图片以及其他资源文件填充到当前组件中,对当前组件进行显示。
本实施例中,用户界面可以包括全局模块,该全局模块包含用户界面中的所有组件;各个组件的竖屏显示坐标包括各个组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,各个组件的横屏显示坐标包括横屏显示宽度、横屏显示高度和横屏显示坐标;
相应地,上述第二获取单元803,具体用于执行以下操作:
P1、根据全局模块的绘制信息,判断全局模块的宽高比进行判断,如果全局模块的宽高比小于设备的屏幕宽高比,则执行步骤P2;如果全局模块的宽高比等于设备的屏幕宽高比,则执行步骤P3;如果全局模块的宽高比大于设备的屏幕宽高比,则执行步骤P4;
P2、将全局模块的竖屏显示高度设置为设备的屏幕高度,根据全局模块的竖屏显示高度和全局模块的绘制信息,获取全局模块的竖屏显示宽度,并执行步骤P5;
P3、将全局模块的竖屏显示高度设置为设备的屏幕高度,将全局模块的竖屏显示宽度设置为设备的屏幕宽度,并执行步骤P5;
P4、将全局模块的竖屏显示宽度设置为设备的屏幕宽度,根据全局模块的竖屏显示宽度和全局模块的绘制信息,获取全局模块的竖屏显示高度,并执行步骤P5;
P5、根据全局模块的竖屏显示宽度、全局模块的竖屏显示高度以及各个组件的绘制信息,获取并保存各个组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标;
上述第三获取单元804,具体用于执行以下操作:
Q1、根据全局模块的绘制信息,对全局模块的宽高比进行判断,如果全局模块的宽高比小于设备的屏幕高宽比,则执行步骤Q2;如果全局模块的宽高比等于设备的屏幕高宽比,则执行步骤Q3;如果全局模块的宽高比大于设备的屏幕高宽比,则执行步骤Q4;
Q2、将全局模块的横屏显示高度设置为设备的屏幕宽度,根据全局模块的横屏显示高度和全局模块的绘制信息,获取全局模块的横屏显示宽度,并执行步骤Q5;
Q3、将全局模块的横屏显示高度设置为设备的屏幕宽度,将全局模块的横屏显示宽度设置为设备的屏幕高度,并执行步骤Q5;
Q4、将全局模块的横屏显示宽度设置为设备的屏幕高度,根据全局模块的横屏显示宽度和全局模块的绘制信息,获取全局模块的横屏显示高度,并执行步骤Q5;
Q5、根据全局模块的横屏显示宽度、全局模块的横屏显示高度以及各个组件的绘制信息,获取并保存各个组件的横屏显示宽度、横屏显示高度和横屏显示坐标。
其中,全局模块的绘制信息为全局模块的宽高比或高宽比;
上述第二获取单元803根据全局模块的绘制信息和竖屏显示宽度,获取全局模块的竖屏显示高度,具体为:
第二获取单元803将全局模块的竖屏显示宽度除以全局模块的宽高比,得到全局模块的竖屏显示高度;
或者,
将全局模块的竖屏显示宽度乘以全局模块的高宽比,得到全局模块的竖屏显示高度;
上述第三获取单元804根据全局模块的绘制信息和横屏显示宽度,获取全局模块的横屏显示高度,具体为:
第三获取单元804将全局模块的横屏显示宽度除以全局模块的宽高比,得到全局模块的横屏显示高度;
或者,
将全局模块的横屏显示宽度乘以全局模块的高宽比,得到全局模块的横屏显示高度。
其中,各个组件的绘制信息包括各个组件的相对坐标、相对宽度和相对高度,各个组件的相对坐标包括各个组件的相对横坐标和相对纵坐标;各个组件的竖屏显示坐标和横屏显示坐标均是以全局模块的左上角为坐标原点,各个组件的左上角的坐标;各个组件的竖屏显示坐标包括各个组件的竖屏显示纵坐标和竖屏显示横坐标;各个组件的横屏显示坐标包括各个组件的横屏显示纵坐标和横屏显示横坐标;
相应地,上述第二获取单元803根据全局模块的竖屏显示宽度、竖屏显示高度,以及各个组件的绘制信息,获取各个组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,具体为:
第二获取单元803将全局模块的竖屏显示宽度分别与各个组件的相对宽度相乘,得到各个组件的竖屏显示宽度;将全局模块的竖屏显示高度与各个组件的相对高度相乘,得到当前组件的竖屏显示高度;将全局模块的竖屏显示宽度分别与当前组件的相对横坐标相乘,得到当前组件的竖屏显示横坐标;将全局模块的竖屏显示高度分别与当前组件的相对纵坐标相乘,得到各个组件的竖屏显示纵坐标;
上述第三获取单元804根据全局模块的横屏显示宽度、横屏显示高度,以及当前组件的绘制信息,获取当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,具体为:
第三获取单元804将全局模块的横屏显示宽度分别与当前组件的相对宽度相乘,得到当前组件的横屏显示宽度;将全局模块的横屏显示高度与当前组件的相对高度相乘,得到当前组件的横屏显示高度;将全局模块的横屏显示宽度分别与当前组件的相对横坐标相乘,得到当前组件的横屏显示横坐标;将全局模块的横屏显示高度分别与当前组件的相对纵坐标相乘,得到各个组件的横屏显示纵坐标。
上述绘制单元806,具体用于在第一判断单元805判断出屏幕方向为竖屏时,执行以下操作:
R1、从用户界面中选取一个未被绘制的组件作为当前组件;
R2、判断是否需要向当前组件中填充图片,如果是,则执行步骤R4;否则,执行步骤R3;
R3、根据当前组件的内容,获取需要填充到当前组件中的资源文件,根据资源文件、当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制当前组件,并执行步骤R11;
R4、判断设备的屏幕密度是否大于预设密度值,如果是,则执行步骤R5;否则,执行步骤R8;
R5、根据当前组件的内容,获取对应的高分辨率图片,判断是否需要向当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤R7;否则,执行步骤R6;
R6、根据高分辨率图片、当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制当前组件,并执行步骤R11;
R7、根据当前组件的内容,获取其他资源文件,根据当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及高分辨率图片和其他资源文件,绘制当前组件,并执行步骤R11;
R8、根据当前组件的内容,获取对应的低分辨率图片,判断是否需要向当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤R10;否则,执行步骤R9;
R9、根据低分辨率图片、当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制当前组件,并执行步骤R11;
R10、根据当前组件的内容,获取除图片之外的其他资源文件,根据当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及低分辨率图片和其他资源文件,绘制当前组件,并执行步骤R11;
R11、判断用户界面中是否包含未被绘制的组件,如果是,则返回步骤R1;否则,确定绘制组件完毕;
以及,
在第一判断单元805判断出屏幕方向为横屏时,执行以下操作:
S1、从用户界面中选取一个未被绘制的组件作为当前组件;
S2、判断是否需要向当前组件中填充图片,如果是,则执行步骤S4;否则,执行步骤S3;
S3、根据当前组件的内容,获取需要填充到当前组件中的资源文件,根据资源文件、当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制当前组件,并执行步骤S11;
S4、判断设备的屏幕密度是否大于预设密度值,如果是,则执行步骤S5;否则,执行步骤S8;
S5、根据当前组件的内容,获取对应的高分辨率图片,判断是否需要向当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤S7;否则,执行步骤S6;
S6、根据高分辨率图片、当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制当前组件,并执行步骤S11;
S7、根据当前组件的内容,获取其他资源文件,根据当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及高分辨率图片和其他资源文件,绘制当前组件,并执行步骤S11;
S8、根据当前组件的内容,获取对应的低分辨率图片,判断是否需要向当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤S10;否则,执行步骤S9;
S9、根据低分辨率图片、当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制当前组件,并执行步骤S11;
S10、根据当前组件的内容,获取除图片之外的其他资源文件,根据当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及低分辨率图片和其他资源文件,绘制当前组件,并执行步骤S11;
S11、判断用户界面中是否包含未被绘制的组件,如果是,则返回步骤S1;否则,确定绘制组件完毕。
其中,上述绘制单元806根据资源文件、当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制当前组件,具体为:
绘制单元806将全局模块的左上角作为坐标原点,根据当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对当前组件进行定位,并将资源文件填充到当前组件中,对当前组件进行显示;
上述绘制单元806根据高分辨率图片、当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制当前组件,具体为:
绘制单元806将全局模块的左上角作为坐标原点,根据当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对当前组件进行定位,并将高分辨率图片填充到当前组件中,对当前组件进行显示;
上述绘制单元806根据当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及高分辨率图片和其他资源文件,绘制当前组件,具体为:
绘制单元806将全局模块的左上角作为坐标原点,根据当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对当前组件进行定位,并将高分辨率图片以及其他资源文件填充到当前组件中,对当前组件进行显示;
上述绘制单元806根据低分辨率图片、当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制当前组件,具体为:
绘制单元806将全局模块的左上角作为坐标原点,根据当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对当前组件进行定位,并将低分辨率图片填充到当前组件中,对当前组件进行显示;
上述绘制单元806根据当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及低分辨率图片和其他资源文件,绘制当前组件,具体为:
绘制单元806将全局模块的左上角作为坐标原点,根据当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对当前组件进行定位,并将低分辨率图片以及其他资源文件填充到当前组件中,对当前组件进行显示;
上述绘制单元806根据资源文件、当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制当前组件,具体为:
绘制单元806将全局模块的左上角作为坐标原点,根据当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对当前组件进行定位,并将资源文件填充到当前组件中,对当前组件进行显示;
上述绘制单元806根据高分辨率图片、当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制当前组件,具体为:
绘制单元806将全局模块的左上角作为坐标原点,根据当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对当前组件进行定位,并将高分辨率图片填充到当前组件中,对当前组件进行显示;
上述绘制单元806根据当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及高分辨率图片和其他资源文件,绘制当前组件,具体为:
绘制单元806将全局模块的左上角作为坐标原点,根据当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对当前组件进行定位,并将高分辨率图片以及其他资源文件填充到当前组件中,对当前组件进行显示;
上述绘制单元806根据低分辨率图片、当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制当前组件,具体为:
绘制单元806将全局模块的左上角作为坐标原点,根据当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对当前组件进行定位,并将低分辨率图片填充到当前组件中,对当前组件进行显示;
上述绘制单元806根据当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及低分辨率图片和其他资源文件,绘制当前组件,具体为:
绘制单元806将全局模块的左上角作为坐标原点,根据当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对当前组件进行定位,并将低分辨率图片以及其他资源文件填充到当前组件中,对当前组件进行显示。
本发明实施例中的装置根据所在设备的屏幕尺寸和屏幕方向、UI中的模块和组件的绘制信息绘制UI,能够对具有不同屏幕尺寸的设备进行屏幕适配和横竖屏切换,并根据设备的屏幕密度显示相应分辨率的图片,提高了屏幕适配和横竖屏切换的流畅度,减少了屏幕适配的工作量,提高了屏幕适配效率和用户体验。
结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (54)
1.一种屏幕适配的方法,其特征在于,包括以下步骤:
A1、客户端从服务器端获取用户界面数据包,对所述用户界面数据包进行解析,得到各个模块的绘制信息和各个组件的绘制信息,所述用户界面中的模块按照垂直方向排列,每个模块包含一个或多个组件;
A2、所述客户端对自身所在设备的屏幕方向进行判断,如果所述屏幕方向为竖屏,则执行步骤A3;如果所述屏幕方向为横屏,则执行步骤A4;
A3、所述客户端将所述各个模块的显示宽度设置为所述设备的屏幕宽度,根据所述各个模块的显示宽度、所述各个模块的绘制信息、所述各个组件的绘制信息,获取所述各个组件的显示宽度、显示高度和显示坐标;根据所述各个组件的显示宽度、显示高度和显示坐标,以及需要填充到所述各个组件中的资源文件,绘制所述各个组件,并执行步骤A5;
A4、所述客户端将所述各个模块的显示宽度设置为所述设备的屏幕高度,根据所述各个模块的显示宽度、所述各个模块的绘制信息、所述各个组件的绘制信息,获取所述各个组件的显示宽度、显示高度和显示坐标;根据所述各个组件的显示宽度、显示高度和显示坐标,以及需要填充到所述各个组件中的资源文件,绘制所述各个组件,并执行步骤A5;
A5、客户端监控所述设备的屏幕方向,并在监控到所述设备的屏幕方向发生变化时,返回步骤A2;
所述步骤A3,具体包括:
B1、所述客户端选取位于所述用户界面顶部的模块作为当前模块,将所述当前模块的显示坐标设置为设备屏幕的左上角,将所述当前模块的显示宽度设置为所述设备的屏幕宽度,根据所述当前模块的绘制信息和显示宽度,获取所述当前模块的显示高度;
B2、所述客户端从所述当前模块中选取一个未被绘制的组件作为当前组件,根据所述当前模块的显示宽度、显示高度,以及所述当前组件的绘制信息,获取所述当前组件的显示宽度、显示高度和显示坐标;
B3、所述客户端根据所述当前组件的显示宽度、显示高度和显示坐标,以及需要填充到所述当前组件中的资源文件,绘制所述当前组件;
B4、所述客户端判断所述当前模块中是否包含未被绘制的组件,如果是,则返回步骤B2;否则,执行步骤B5;
B5、所述客户端判断所述用户界面中是否包含未被处理过的模块,如果是,则执行步骤B6;否则,执行步骤A5;
B6、所述客户端获取所述当前模块的显示纵坐标与所述当前模块的显示高度相加得到的运算结果,选取所述用户界面中与所述当前模块相邻且位于所述当前模块下方的模块作为更新后的当前模块;
B7、所述客户端将所述当前模块的显示纵坐标设置为所述运算结果,将所述当前模块的显示横坐标设置为零,将所述当前模块的显示宽度设置为设备的屏幕宽度,根据所述当前模块的绘制信息和显示宽度,获取所述当前模块的显示高度,并返回步骤B2。
2.如权利要求1所述的方法,其特征在于,所述步骤A1之后,还包括:
所述客户端判断所述设备是否为预设类型设备,如果是,则执行步骤A3;如果不是,则执行步骤A2。
3.如权利要求1所述的方法,其特征在于,所述步骤A4,具体包括:
C1、所述客户端选取位于所述用户界面顶部的模块作为当前模块,将所述当前模块的显示坐标设置为设备屏幕的左上角,将所述当前模块的显示宽度设置为所述设备的屏幕高度,根据所述当前模块的绘制信息和显示宽度,获取所述当前模块的显示高度;
C2、所述客户端从所述当前模块中选取一个未被绘制的组件作为当前组件,根据所述当前模块的显示宽度、显示高度,以及所述当前组件的绘制信息,获取所述当前组件的显示宽度、显示高度和显示坐标;
C3、所述客户端根据所述当前组件的显示宽度、显示高度和显示坐标,以及需要填充到所述当前组件中的资源文件,绘制所述当前组件;
C4、所述客户端判断所述当前模块中是否包含未被绘制的组件,如果是,则返回步骤C2;否则,执行步骤C5;
C5、所述客户端判断所述用户界面中是否包含未被处理过的模块,如果是,则执行步骤C6;否则,执行步骤A5;
C6、所述客户端获取所述当前模块的显示纵坐标与所述当前模块的显示高度相加得到的运算结果,选取所述用户界面中与所述当前模块相邻且位于所述当前模块下方的模块作为更新后的当前模块;
C7、所述客户端将所述当前模块的显示纵坐标设置为所述运算结果,将所述当前模块的显示横坐标设置为零,将所述当前模块的显示宽度设置为设备的屏幕高度,根据所述当前模块的绘制信息和显示宽度,获取所述当前模块的显示高度,并返回步骤C2。
4.如权利要求1或3所述的方法,其特征在于,所述当前模块的绘制信息为所述当前模块的宽高比或高宽比;
所述客户端根据所述当前模块的绘制信息和显示宽度,获取所述当前模块的显示高度,具体为:
所述客户端将所述当前模块的显示宽度除以所述当前模块的宽高比,得到所述当前模块的显示高度;
或者,
所述客户端将所述当前模块的显示宽度乘以所述当前模块的高宽比,得到所述当前模块的显示高度。
5.如权利要求1或3所述的方法,其特征在于,所述当前组件的绘制信息包括所述当前组件的相对坐标、相对宽度和相对高度,所述当前组件的相对坐标包括所述当前组件的相对横坐标和相对纵坐标;所述当前组件的显示坐标是以所述当前模块的左上角为坐标原点,所述当前组件的左上角的坐标;所述当前组件的显示坐标包括所述当前组件的显示纵坐标和显示横坐标;
所述客户端根据所述当前模块的显示宽度、显示高度,以及所述当前组件的绘制信息,获取所述当前组件的显示宽度、显示高度和显示坐标,具体为:
所述客户端将所述当前模块的显示宽度与所述当前组件的相对宽度相乘,得到所述当前组件的显示宽度;将所述当前模块的显示高度与所述当前组件的相对高度相乘,得到所述当前组件的显示高度;将所述当前模块的显示宽度与所述当前组件的相对横坐标相乘,得到所述当前组件的显示横坐标;将所述当前模块的显示高度与所述当前组件的相对纵坐标相乘,得到所述当前组件的显示纵坐标。
6.如权利要求1或3所述的方法,其特征在于,所述客户端根据所述当前组件的显示宽度、显示高度和显示坐标,以及需要填充到所述当前组件中的资源文件,绘制所述当前组件,具体包括:
D1、所述客户端判断是否需要向所述当前组件中填充图片,如果是,则执行步骤D3;否则,执行步骤D2;
D2、所述客户端根据所述当前组件的内容,获取需要填充到所述当前组件中的资源文件,根据所述资源文件以及所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件;
D3、所述客户端判断所述设备的屏幕密度是否大于预设密度值,如果是,则执行步骤D4;否则,执行步骤D7;
D4、所述客户端根据所述当前组件的内容,获取对应的高分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤D6;否则,执行步骤D5;
D5、所述客户端根据所述高分辨率图片、所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件;
D6、所述客户端根据所述当前组件的内容,获取所述其他资源文件,根据所述当前组件的显示宽度、显示高度和显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件;
D7、所述客户端根据当前组件的内容,获取对应的低分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤D9;否则,执行步骤D8;
D8、所述客户端根据所述低分辨率图片、所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件;
D9、所述客户端根据所述当前组件的内容,获取除图片之外的其他资源文件,根据所述当前组件的显示宽度、显示高度和显示坐标,以及所述低分辨率图片和所述其他资源文件,绘制所述当前组件。
7.如权利要求6所述的方法,其特征在于,所述客户端根据所述资源文件以及所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件,具体为:
所述客户端将所述当前模块的左上角作为坐标原点,根据所述当前组件的显示宽度、显示高度和显示坐标,对所述当前组件进行定位,并将所述资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述高分辨率图片、所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件,具体为:
所述客户端将所述当前模块的左上角作为坐标原点,根据所述当前组件的显示宽度、显示高度和显示坐标,对所述当前组件进行定位,并将所述高分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述当前组件的显示宽度、显示高度和显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件,具体为:
所述客户端将所述当前模块的左上角作为坐标原点,根据所述当前组件的显示宽度、显示高度和显示坐标,对所述当前组件进行定位,并将所述高分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述低分辨率图片、所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件,具体为:
所述客户端将所述当前模块的左上角作为坐标原点,根据所述当前组件的显示宽度、显示高度和显示坐标,对所述当前组件进行定位,并将所述低分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述当前组件的显示宽度、显示高度和显示坐标,以及所述低分辨率图片和所述其他资源文件,所述绘制当前组件,具体为:
所述客户端将所述当前模块的左上角作为坐标原点,根据所述当前组件的显示宽度、显示高度和显示坐标,对所述当前组件进行定位,并将所述低分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示。
8.一种屏幕适配的方法,其特征在于,包括以下步骤:
E1、客户端从服务器端获取用户界面数据包,对所述用户界面数据包进行解析,得到全局模块的绘制信息和各个组件的绘制信息,所述全局模块包含所述用户界面中的所有组件;
E2、所述客户端对自身所在设备的屏幕方向进行判断,如果所述屏幕方向为竖屏,则执行步骤E3;如果所述屏幕方向为横屏,则执行步骤E4;
E3、所述客户端将所述全局模块的显示宽度设置为所述设备的屏幕宽度,根据所述全局模块的显示宽度和所述全局模块的绘制信息,获取所述全局模块的显示高度,并执行步骤E5;
E4、所述客户端将所述全局模块的显示高度设置为所述设备的屏幕宽度,根据所述全局模块的显示高度和所述全局模块的绘制信息,获取所述全局模块的显示宽度,并执行步骤E5;
E5、所述客户端根据所述全局模块的显示宽度、所述全局模块的显示高度、所述各个组件的绘制信息,获取所述各个组件的显示宽度、显示高度和显示坐标;根据所述各个组件的显示宽度、显示高度和显示坐标,以及需要填充到所述各个组件中的资源文件,绘制所述各个组件,并执行步骤E6;
E6、所述客户端监控所述设备的屏幕方向,并在监控到所述设备的屏幕方向发生变化时,返回步骤E2;
所述步骤E5,具体包括:
F1、所述客户端从所述全局模块中选取一个未被绘制的组件作为当前组件,根据所述全局模块的显示宽度、显示高度,以及所述当前组件的绘制信息,获取所述当前组件的显示宽度、显示高度和显示坐标;
F2、所述客户端根据所述当前组件的显示宽度、显示高度和显示坐标,以及需要填充到所述当前组件中的资源文件,绘制所述当前组件;
F3、所述客户端判断所述全局模块中是否包含未被绘制的组件,如果是,则返回步骤F1;否则,执行步骤E6。
9.如权利要求8所述的方法,其特征在于,所述客户端判断出所述屏幕方向为竖屏之后,还包括:
所述客户端根据所述全局模块的绘制信息,对所述全局模块的宽高比进行判断;
如果所述全局模块的宽高比小于设备的屏幕宽高比,所述客户端将所述全局模块的显示高度设置为所述设备的屏幕高度,根据所述全局模块的显示高度和所述全局模块的绘制信息,获取所述全局模块的显示宽度,并执行步骤E5;
如果所述全局模块的宽高比等于所述设备的屏幕宽高比,所述客户端将所述全局模块的显示高度设置为所述设备的屏幕高度,将所述全局模块的显示宽度设置为所述设备的屏幕宽度,并执行步骤E5;
如果所述全局模块的宽高比大于所述设备的屏幕宽高比,则执行步骤E3。
10.如权利要求8所述的方法,其特征在于,所述客户端判断出所述屏幕方向为横屏之后,还包括:
所述客户端根据所述全局模块的绘制信息,对所述全局模块的宽高比进行判断,如果所述全局模块的宽高比小于所述设备的屏幕高宽比,则执行步骤E4;
如果所述全局模块的宽高比等于所述设备的屏幕高宽比,客户端将全局模块的显示高度设置为设备的屏幕宽度,将全局模块的显示宽度设置为设备的屏幕高度,并执行步骤E5;
如果所述全局模块的宽高比大于所述设备的屏幕高宽比,所述客户端将所述全局模块的显示宽度设置为所述设备的屏幕高度,根据所述全局模块的显示宽度和所述全局模块的绘制信息,获取所述全局模块的显示高度,并执行步骤E5。
11.如权利要求9或10所述的方法,其特征在于,所述全局模块的绘制信息为所述全局模块的宽高比或高宽比;
所述客户端根据所述全局模块的显示宽度和所述全局模块的绘制信息,获取所述全局模块的显示高度,具体为:
所述客户端将所述全局模块的显示宽度除以所述全局模块的宽高比,得到所述全局模块的显示高度;
或者,
所述客户端将所述全局模块的显示宽度乘以所述全局模块的高宽比,得到所述全局模块的显示高度;
所述客户端根据所述全局模块的显示高度和所述全局模块的绘制信息,获取所述全局模块的显示宽度,具体为:
所述客户端将所述全局模块的显示高度乘以所述全局模块的宽高比,得到所述全局模块的显示宽度;
或者,
所述客户端将所述全局模块的显示高度除以所述全局模块的高宽比,得到所述全局模块的显示宽度。
12.如权利要求8所述的方法,其特征在于,所述步骤E1之后,还包括:
所述客户端将所述全局模块的中心点设置为与界面视图的中心点相同。
13.如权利要求8所述的方法,其特征在于,还包括:
所述客户端将界面视图的背景设置为黑色。
14.如权利要求8所述的方法,其特征在于,所述当前组件的绘制信息包括所述当前组件的相对坐标、相对宽度和相对高度,所述当前组件的相对坐标包括所述当前组件的相对横坐标和相对纵坐标;所述当前组件的显示坐标是以所述全局模块的左上角为坐标原点,所述当前组件的左上角的坐标;所述当前组件的显示坐标包括所述当前组件的显示纵坐标和显示横坐标;
所述客户端根据所述全局模块的显示宽度、显示高度,以及所述当前组件的绘制信息,获取所述当前组件的显示宽度、显示高度和显示坐标,具体为:
所述客户端将所述全局模块的显示宽度与所述当前组件的相对宽度相乘,得到所述当前组件的显示宽度;将所述全局模块的显示高度与所述当前组件的相对高度相乘,得到所述当前组件的显示高度;将所述全局模块的显示宽度与所述当前组件的相对横坐标相乘,得到所述当前组件的显示横坐标;将所述全局模块的显示高度与所述当前组件的相对纵坐标相乘,得到所述当前组件的显示纵坐标。
15.如权利要求8所述的方法,其特征在于,所述步骤F2,具体包括:
G1、所述客户端判断是否需要向所述当前组件中填充图片,如果是,则执行步骤G3;否则,执行步骤G2;
G2、所述客户端根据所述当前组件的内容,获取需要填充到所述当前组件中的资源文件,根据所述资源文件以及所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件;
G3、所述客户端判断所述设备的屏幕密度是否大于预设密度值,如果是,则执行步骤G4;否则,执行步骤G7;
G4、所述客户端根据所述当前组件的内容,获取对应的高分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤G6;否则,执行步骤G5;
G5、所述客户端根据所述高分辨率图片、所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件;
G6、所述客户端根据所述当前组件的内容,获取所述其他资源文件,根据所述当前组件的显示宽度、显示高度和显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件;
G7、所述客户端根据当前组件的内容,获取对应的低分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤G9;否则,执行步骤G8;
G8、所述客户端根据所述低分辨率图片、所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件;
G9、所述客户端根据所述当前组件的内容,获取除图片之外的其他资源文件,根据所述当前组件的显示宽度、显示高度和显示坐标,以及所述低分辨率图片和所述其他资源文件,绘制所述当前组件。
16.如权利要求15所述的方法,其特征在于,所述客户端根据所述资源文件以及所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件,具体为:
所述客户端将所述当前模块的左上角作为坐标原点,根据所述当前组件的显示宽度、显示高度和显示坐标,对所述当前组件进行定位,并将所述资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述高分辨率图片、所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件,具体为:
所述客户端将所述当前模块的左上角作为坐标原点,根据所述当前组件的显示宽度、显示高度和显示坐标,对所述当前组件进行定位,并将所述高分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述当前组件的显示宽度、显示高度和显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件,具体为:
所述客户端将所述当前模块的左上角作为坐标原点,根据所述当前组件的显示宽度、显示高度和显示坐标,对所述当前组件进行定位,并将所述高分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述低分辨率图片、所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件,具体为:
所述客户端将所述当前模块的左上角作为坐标原点,根据所述当前组件的显示宽度、显示高度和显示坐标,对所述当前组件进行定位,并将所述低分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述当前组件的显示宽度、显示高度和显示坐标,以及所述低分辨率图片和所述其他资源文件,所述绘制当前组件,具体为:
所述客户端将所述当前模块的左上角作为坐标原点,根据所述当前组件的显示宽度、显示高度和显示坐标,对所述当前组件进行定位,并将所述低分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示。
17.一种屏幕适配的方法,其特征在于,包括以下步骤:
H1、客户端从服务器端获取用户界面数据包,对所述用户界面数据包进行解析,得到各个模块的绘制信息和各个组件的绘制信息;
H2、所述客户端根据自身所在设备的屏幕尺寸、所述各个模块的绘制信息和所述各个组件的绘制信息,获取并保存所述各个组件的竖屏显示信息和横屏显示信息;
H3、所述客户端对自身所在设备的屏幕方向进行判断,如果所述屏幕方向为竖屏,则执行步骤H4;如果所述屏幕方向为横屏,则执行步骤H5;
H4、所述客户端根据所述各个组件的竖屏显示信息绘制所述各个组件,并执行步骤H6;
H5、所述客户端根据所述各个组件的横屏显示信息绘制所述各个组件,并执行步骤H6;
H6、所述客户端监控所述设备的屏幕方向,并在监控到所述设备的屏幕方向发生变化时,执行步骤H7;
H7、所述客户端对自身所在设备的屏幕方向进行判断,如果所述屏幕方向为竖屏,则执行步骤H8;如果所述屏幕方向为横屏,则执行步骤H9;
H8、所述客户端根据所述各个组件的竖屏显示信息绘制所述各个组件,并执行步骤H6;
H9、所述客户端根据所述各个组件的横屏显示信息绘制所述各个组件,并执行步骤H6;
所述方法还包括:
所述客户端监控所述各个组件的组件属性信息,并在监控到所述组件属性信息发生改变时,对改变后的组件属性信息进行保存;
所述步骤H8,具体为:
所述客户端根据所述各个组件的竖屏显示信息绘制所述各个组件,判断自身是否保存有组件属性信息,如果是,则根据所述组件属性信息修改对应组件的属性,删除所述组件属性信息,并返回步骤H6;否则,返回步骤H6;
所述步骤H9,具体为:
所述客户端根据所述各个组件的横屏显示信息绘制所述各个组件,判断自身是否保存有组件属性信息,如果是,则根据所述组件属性信息修改对应组件的属性,删除所述组件属性信息,并返回步骤H6;否则,返回步骤H6。
18.如权利要求17所述的方法,其特征在于,所述用户界面包括多个模块,所述用户界面中的各个模块按照垂直方向排列,每个模块包含一个或多个组件;所述各个组件的竖屏显示信息包括所述各个组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,所述各个组件的横屏显示信息包括所述各个组件的横屏显示宽度、横屏显示高度和横屏显示坐标;
所述客户端根据自身所在设备的屏幕尺寸、所述各个模块的绘制信息和所述各个组件的绘制信息,获取并保存所述各个组件的竖屏显示信息,具体包括:
K1、所述客户端选取位于所述用户界面顶部的模块作为当前模块,将所述当前模块的竖屏显示坐标设置为设备屏幕的左上角,保存所述当前模块的竖屏显示坐标,将所述当前模块的竖屏显示宽度设置为所述设备的屏幕宽度,根据所述当前模块的绘制信息和竖屏显示宽度,获取所述当前模块的竖屏显示高度;
K2、所述客户端根据所述当前模块的竖屏显示宽度、竖屏显示高度,以及所述当前模块中的各个组件的绘制信息,获取并保存所述当前模块中的各个组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标;
K3、所述客户端判断所述用户界面中是否包含未被处理过的模块,如果是,则执行步骤K4;否则,确定获取竖屏显示信息完毕;
K4、所述客户端获取所述当前模块的竖屏显示纵坐标与所述当前模块的竖屏显示高度相加得到的运算结果,选取所述用户界面中与所述当前模块相邻且位于所述当前模块下方的模块作为更新后的当前模块;
K5、所述客户端将所述当前模块的竖屏显示纵坐标设置为所述运算结果,将所述当前模块的竖屏显示横坐标设置为零,将所述当前模块的竖屏显示宽度设置为所述设备的屏幕宽度,根据所述当前模块的绘制信息和竖屏显示宽度,获取所述当前模块的竖屏显示高度,并返回步骤K2;
所述客户端根据自身所在设备的屏幕尺寸、所述各个模块的绘制信息和所述各个组件的绘制信息,获取并保存所述各个组件的横屏显示信息,具体包括:L1、所述客户端选取位于所述用户界面顶部的模块作为当前模块,将所述当前模块的横屏显示坐标设置为设备屏幕的左上角,保存所述当前模块的横屏显示坐标,将所述当前模块的横屏显示宽度设置为所述设备的屏幕高度,根据所述当前模块的绘制信息和横屏显示宽度,获取所述当前模块的横屏显示高度;
L2、所述客户端根据所述当前模块的横屏显示宽度、横屏显示高度,以及所述当前模块中的各个组件的绘制信息,获取并保存所述当前模块中的各个组件的横屏显示宽度、横屏显示高度和横屏显示坐标;
L3、所述客户端判断所述用户界面中是否包含未被处理过的模块,如果是,则执行步骤L4;否则,确定获取横屏显示信息完毕;
L4、所述客户端获取所述当前模块的显示纵坐标与所述当前模块的横屏显示高度相加得到的运算结果,选取所述用户界面中与所述当前模块相邻且位于所述当前模块下方的模块作为更新后的当前模块;
L5、所述客户端将所述当前模块的横屏显示纵坐标设置为所述运算结果,将所述当前模块的横屏显示横坐标设置为零,将所述当前模块的横屏显示宽度设置为所述设备的屏幕高度,根据所述当前模块的绘制信息和横屏显示宽度,获取所述当前模块的横屏显示高度,并返回步骤L2。
19.如权利要求18所述的方法,其特征在于,所述当前模块的绘制信息为所述当前模块的宽高比或高宽比;
所述客户端根据所述当前模块的绘制信息和竖屏显示宽度,获取所述当前模块的竖屏显示高度,具体为:
所述客户端将所述当前模块的竖屏显示宽度除以所述当前模块的宽高比,得到所述当前模块的竖屏显示高度;
或者,
所述客户端将所述当前模块的竖屏显示宽度乘以所述当前模块的高宽比,得到所述当前模块的竖屏显示高度;
所述客户端根据所述当前模块的绘制信息和横屏显示宽度,获取所述当前模块的横屏显示高度,具体为:
所述客户端将所述当前模块的横屏显示宽度除以所述当前模块的宽高比,得到所述当前模块的横屏显示高度;
或者,
所述客户端将所述当前模块的横屏显示宽度乘以所述当前模块的高宽比,得到所述当前模块的横屏显示高度。
20.如权利要求18所述的方法,其特征在于,所述各个组件的绘制信息包括所述各个组件的相对坐标、相对宽度和相对高度,所述各个组件的相对坐标包括所述各个组件的相对横坐标和相对纵坐标;所述各个组件的竖屏显示坐标和横屏显示坐标均是以所述当前模块的左上角为坐标原点,所述各个组件的左上角的坐标;所述各个组件的竖屏显示坐标包括所述各个组件的竖屏显示纵坐标和竖屏显示横坐标;所述各个组件的横屏显示坐标包括所述各个组件的横屏显示纵坐标和横屏显示横坐标;
所述客户端根据所述当前模块的竖屏显示宽度、竖屏显示高度,以及所述当前模块中的各个组件的绘制信息,获取所述当前模块中的各个组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,具体为:
所述客户端将所述当前模块的竖屏显示宽度分别与所述当前模块中的各个组件的相对宽度相乘,得到所述当前模块中的各个组件的竖屏显示宽度;将所述当前模块的竖屏显示高度与所述当前模块中的各个组件的相对高度相乘,得到所述当前模块中的各个组件的竖屏显示高度;将所述当前模块的竖屏显示宽度分别与所述当前模块中的各个组件的相对横坐标相乘,得到所述当前模块中的各个组件的竖屏显示横坐标;将所述当前模块的竖屏显示高度分别与所述当前模块中的各个组件的相对纵坐标相乘,得到所述各个组件的竖屏显示纵坐标;
所述客户端根据所述当前模块的横屏显示宽度、横屏显示高度,以及所述当前模块中的各个组件的绘制信息,获取所述当前模块中的各个组件的横屏显示宽度、横屏显示高度和横屏显示坐标,具体为:
所述客户端将所述当前模块的横屏显示宽度分别与所述当前模块中的各个组件的相对宽度相乘,得到所述当前模块中的各个组件的横屏显示宽度;将所述当前模块的横屏显示高度与所述当前模块中的各个组件的相对高度相乘,得到所述当前模块中的各个组件的横屏显示高度;将所述当前模块的横屏显示宽度分别与所述当前模块中的各个组件的相对横坐标相乘,得到所述当前模块中的各个组件的横屏显示横坐标;将所述当前模块的横屏显示高度分别与所述当前模块中的各个组件的相对纵坐标相乘,得到所述各个组件的横屏显示纵坐标。
21.如权利要求18所述的方法,其特征在于,所述步骤H1之后,还包括:所述客户端根据自身所在设备的屏幕尺寸和所述各个模块的绘制信息,获取并保存所述各个模块的竖屏显示坐标和横屏显示坐标;
所述客户端根据所述各个组件的竖屏显示信息绘制所述各个组件,具体包括:
M1、所述客户端从所述用户界面中选取一个未被处理过的模块作为当前模块,从所述当前模块中选取一个未被绘制的组件作为当前组件;
M2、所述客户端判断是否需要向所述当前组件中填充图片,如果是,则执行步骤M4;否则,执行步骤M3;
M3、所述客户端根据所述当前组件的内容,获取需要填充到所述当前组件中的资源文件,根据所述资源文件、所述当前模块的竖屏显示坐标以及所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,并执行步骤M11;
M4、所述客户端判断所述设备的屏幕密度是否大于预设密度值,如果是,则执行步骤M5;否则,执行步骤M8;
M5、所述客户端根据所述当前组件的内容,获取对应的高分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤M7;否则,执行步骤M6;
M6、所述客户端根据所述高分辨率图片、所述当前模块的竖屏显示坐标以及所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,并执行步骤M11;
M7、所述客户端根据所述当前组件的内容,获取所述其他资源文件,根据所述当前模块的竖屏显示坐标、所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件,并执行步骤M11;
M8、所述客户端根据当前组件的内容,获取对应的低分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤M10;否则,执行步骤M9;
M9、所述客户端根据所述低分辨率图片、所述当前模块的竖屏显示坐标以及所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,并执行步骤M11;
M10、所述客户端根据所述当前组件的内容,获取除图片之外的其他资源文件,根据所述当前模块的竖屏显示坐标、所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及所述低分辨率图片和所述其他资源文件,绘制所述当前组件,并执行步骤M11;
M11、所述客户端判断所述当前模块中是否包含未被绘制的组件,如果是,则从所述当前模块中选取一个未被绘制的组件作为当前组件,并返回步骤M2;否则,执行步骤M12;
M12、所述客户端判断所述用户界面中是否包含未被处理过的模块,如果是,则返回步骤M1;否则,确定绘制组件完毕;
所述客户端根据所述各个组件的横屏显示信息绘制所述各个组件,具体包括:
N1、所述客户端从所述用户界面中选取一个未被处理过的模块作为当前模块,从所述当前模块中选取一个未被绘制的组件作为当前组件;
N2、所述客户端判断是否需要向所述当前组件中填充图片,如果是,则执行步骤N4;否则,执行步骤N3;
N3、所述客户端根据所述当前组件的内容,获取需要填充到所述当前组件中的资源文件,根据所述资源文件、所述当前模块的横屏显示坐标以及所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,并执行步骤N11;
N4、所述客户端判断所述设备的屏幕密度是否大于预设密度值,如果是,则执行步骤N5;否则,执行步骤N8;
N5、所述客户端根据所述当前组件的内容,获取对应的高分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤N7;否则,执行步骤N6;
N6、所述客户端根据所述高分辨率图片、所述当前模块的横屏显示坐标以及所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,并执行步骤N11;
N7、所述客户端根据所述当前组件的内容,获取所述其他资源文件,根据所述当前模块的横屏显示坐标、所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件,并执行步骤N11;
N8、所述客户端根据当前组件的内容,获取对应的低分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤N10;否则,执行步骤N9;
N9、所述客户端根据所述低分辨率图片、所述当前模块的横屏显示坐标以及所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,并执行步骤N11;
N10、所述客户端根据所述当前组件的内容,获取除图片之外的其他资源文件,根据所述当前模块的横屏显示坐标、所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及所述低分辨率图片和所述其他资源文件,绘制所述当前组件,并执行步骤N11;
N11、所述客户端判断所述当前模块中是否包含未被绘制的组件,如果是,则从所述当前模块中选取一个未被绘制的组件作为当前组件,并返回步骤N2;否则,执行步骤N12;
N12、所述客户端判断所述用户界面中是否包含未被处理过的模块,如果是,则返回步骤N1;否则,确定绘制组件完毕。
22.如权利要求21所述的方法,其特征在于,所述客户端根据所述资源文件、所述当前模块的竖屏显示坐标以及所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,具体为:
所述客户端根据所述当前模块的竖屏显示坐标,确定所述当前模块的左上角的位置,并将所述当前模块的左上角作为坐标原点,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对所述当前组件进行定位,并将所述资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述高分辨率图片、所述当前模块的竖屏显示坐标以及所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,具体为:
所述客户端根据所述当前模块的竖屏显示坐标,确定所述当前模块的左上角的位置,并将所述当前模块的左上角作为坐标原点,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对所述当前组件进行定位,并将所述高分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述当前模块的竖屏显示坐标、所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件,具体为:
所述客户端根据所述当前模块的竖屏显示坐标,确定所述当前模块的左上角的位置,并将所述当前模块的左上角作为坐标原点,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对所述当前组件进行定位,并将所述高分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述低分辨率图片、所述当前模块的竖屏显示坐标以及所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,具体为:
所述客户端根据所述当前模块的竖屏显示坐标,确定所述当前模块的左上角的位置,并将所述当前模块的左上角作为坐标原点,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对所述当前组件进行定位,并将所述低分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述当前模块的竖屏显示坐标、所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及所述低分辨率图片和所述其他资源文件,所述绘制当前组件,具体为:
所述客户端根据所述当前模块的竖屏显示坐标,确定所述当前模块的左上角的位置,并将所述当前模块的左上角作为坐标原点,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对所述当前组件进行定位,并将所述低分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述资源文件、所述当前模块的横屏显示坐标以及所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,具体为:
所述客户端根据所述当前模块的横屏显示坐标,确定所述当前模块的左上角的位置,并将所述当前模块的左上角作为坐标原点,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对所述当前组件进行定位,并将所述资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述高分辨率图片、所述当前模块的横屏显示坐标以及所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,具体为:
所述客户端根据所述当前模块的横屏显示坐标,确定所述当前模块的左上角的位置,并将所述当前模块的左上角作为坐标原点,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对所述当前组件进行定位,并将所述高分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述当前模块的横屏显示坐标、所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件,具体为:
所述客户端根据所述当前模块的横屏显示坐标,确定所述当前模块的左上角的位置,并将所述当前模块的左上角作为坐标原点,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对所述当前组件进行定位,并将所述高分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述低分辨率图片、所述当前模块的横屏显示坐标以及所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,具体为:
所述客户端根据所述当前模块的横屏显示坐标,确定所述当前模块的左上角的位置,并将所述当前模块的左上角作为坐标原点,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对所述当前组件进行定位,并将所述低分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述当前模块的横屏显示坐标、所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及所述低分辨率图片和所述其他资源文件,所述绘制当前组件,具体为:
所述客户端根据所述当前模块的横屏显示坐标,确定所述当前模块的左上角的位置,并将所述当前模块的左上角作为坐标原点,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对所述当前组件进行定位,并将所述低分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示。
23.如权利要求17所述的方法,其特征在于,所述用户界面包括全局模块,所述全局模块包含所述用户界面中的所有组件;
所述各个组件的竖屏显示信息包括所述各个组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,所述各个组件的横屏显示信息包括所述横屏显示宽度、横屏显示高度和横屏显示坐标;
所述客户端根据自身所在设备的屏幕尺寸、所述各个模块的绘制信息和所述各个组件的绘制信息,获取并保存所述各个组件的竖屏显示信息,具体包括:
P1、所述客户端根据所述全局模块的绘制信息,判断所述全局模块的宽高比进行判断,如果所述全局模块的宽高比小于所述设备的屏幕宽高比,则执行步骤P2;如果所述全局模块的宽高比等于所述设备的屏幕宽高比,则执行步骤P3;如果所述全局模块的宽高比大于所述设备的屏幕宽高比,则执行步骤P4;
P2、所述客户端将所述全局模块的竖屏显示高度设置为所述设备的屏幕高度,根据所述全局模块的竖屏显示高度和所述全局模块的绘制信息,获取所述全局模块的竖屏显示宽度,并执行步骤P5;
P3、所述客户端将所述全局模块的竖屏显示高度设置为所述设备的屏幕高度,将所述全局模块的竖屏显示宽度设置为所述设备的屏幕宽度,并执行步骤P5;
P4、所述客户端将所述全局模块的竖屏显示宽度设置为所述设备的屏幕宽度,根据所述全局模块的竖屏显示宽度和所述全局模块的绘制信息,获取所述全局模块的竖屏显示高度,并执行步骤P5;
P5、所述客户端根据所述全局模块的竖屏显示宽度、所述全局模块的竖屏显示高度以及所述各个组件的绘制信息,获取并保存所述各个组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标;
所述客户端根据自身所在设备的屏幕尺寸、所述各个模块的绘制信息和所述各个组件的绘制信息,获取并保存所述各个组件的横屏显示信息,具体包括:
Q1、所述客户端根据所述全局模块的绘制信息,对所述全局模块的宽高比进行判断,如果所述全局模块的宽高比小于所述设备的屏幕高宽比,则执行步骤Q2;如果所述全局模块的宽高比等于所述设备的屏幕高宽比,则执行步骤Q3;如果所述全局模块的宽高比大于所述设备的屏幕高宽比,则执行步骤Q4;
Q2、所述客户端将所述全局模块的横屏显示高度设置为所述设备的屏幕宽度,根据所述全局模块的横屏显示高度和所述全局模块的绘制信息,获取所述全局模块的横屏显示宽度,并执行步骤Q5;
Q3、所述客户端将全局模块的横屏显示高度设置为设备的屏幕宽度,将全局模块的横屏显示宽度设置为设备的屏幕高度,并执行步骤Q5;
Q4、所述客户端将所述全局模块的横屏显示宽度设置为所述设备的屏幕高度,根据所述全局模块的横屏显示宽度和所述全局模块的绘制信息,获取所述全局模块的横屏显示高度,并执行步骤Q5;
Q5、所述客户端根据所述全局模块的横屏显示宽度、所述全局模块的横屏显示高度以及所述各个组件的绘制信息,获取并保存所述各个组件的横屏显示宽度、横屏显示高度和横屏显示坐标。
24.如权利要求23所述的方法,其特征在于,所述全局模块的绘制信息为所述全局模块的宽高比或高宽比;
所述客户端根据所述全局模块的绘制信息和竖屏显示宽度,获取所述全局模块的竖屏显示高度,具体为:
所述客户端将所述全局模块的竖屏显示宽度除以所述全局模块的宽高比,得到所述全局模块的竖屏显示高度;
或者,
所述客户端将所述全局模块的竖屏显示宽度乘以所述全局模块的高宽比,得到所述全局模块的竖屏显示高度;
所述客户端根据所述全局模块的绘制信息和横屏显示宽度,获取所述全局模块的横屏显示高度,具体为:
所述客户端将所述全局模块的横屏显示宽度除以所述全局模块的宽高比,得到所述全局模块的横屏显示高度;
或者,
所述客户端将所述全局模块的横屏显示宽度乘以所述全局模块的高宽比,得到所述全局模块的横屏显示高度。
25.如权利要求23所述的方法,其特征在于,所述各个组件的绘制信息包括所述各个组件的相对坐标、相对宽度和相对高度,所述各个组件的相对坐标包括所述各个组件的相对横坐标和相对纵坐标;所述各个组件的竖屏显示坐标和横屏显示坐标均是以所述全局模块的左上角为坐标原点,所述各个组件的左上角的坐标;所述各个组件的竖屏显示坐标包括所述各个组件的竖屏显示纵坐标和竖屏显示横坐标;所述各个组件的横屏显示坐标包括所述各个组件的横屏显示纵坐标和横屏显示横坐标;
所述客户端根据所述全局模块的竖屏显示宽度、竖屏显示高度,以及所述各个组件的绘制信息,获取所述各个组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,具体为:
所述客户端将所述全局模块的竖屏显示宽度分别与所述各个组件的相对宽度相乘,得到所述各个组件的竖屏显示宽度;将所述全局模块的竖屏显示高度分别与所述各个组件的相对高度相乘,得到所述各个组件的竖屏显示高度;将所述全局模块的竖屏显示宽度分别与所述各个组件的相对横坐标相乘,得到所述各个组件的竖屏显示横坐标;将所述全局模块的竖屏显示高度分别与所述各个组件的相对纵坐标相乘,得到所述各个组件的竖屏显示纵坐标;
所述客户端根据所述全局模块的横屏显示宽度、横屏显示高度,以及所述各个组件的绘制信息,获取所述各个组件的横屏显示宽度、横屏显示高度和横屏显示坐标,具体为:
所述客户端将所述全局模块的横屏显示宽度分别与所述各个组件的相对宽度相乘,得到所述各个组件的横屏显示宽度;将所述全局模块的横屏显示高度分别与所述各个组件的相对高度相乘,得到所述各个组件的横屏显示高度;将所述全局模块的横屏显示宽度分别与所述各个组件的相对横坐标相乘,得到所述各个组件的横屏显示横坐标;将所述全局模块的横屏显示高度分别与所述各个组件的相对纵坐标相乘,得到所述各个组件的横屏显示纵坐标。
26.如权利要求23所述的方法,其特征在于,所述客户端根据所述各个组件的竖屏显示信息绘制所述各个组件,具体包括:
R1、所述客户端从所述用户界面中选取一个未被绘制的组件作为当前组件;
R2、所述客户端判断是否需要向所述当前组件中填充图片,如果是,则执行步骤R4;否则,执行步骤R3;
R3、所述客户端根据所述当前组件的内容,获取需要填充到所述当前组件中的资源文件,根据所述资源文件、所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,并执行步骤R11;
R4、所述客户端判断所述设备的屏幕密度是否大于预设密度值,如果是,则执行步骤R5;否则,执行步骤R8;
R5、所述客户端根据所述当前组件的内容,获取对应的高分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤R7;否则,执行步骤R6;
R6、所述客户端根据所述高分辨率图片、所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,并执行步骤R11;
R7、所述客户端根据所述当前组件的内容,获取所述其他资源文件,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件,并执行步骤R11;
R8、所述客户端根据当前组件的内容,获取对应的低分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤R10;否则,执行步骤R9;
R9、所述客户端根据所述低分辨率图片、所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,并执行步骤R11;
R10、所述客户端根据所述当前组件的内容,获取除图片之外的其他资源文件,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及所述低分辨率图片和所述其他资源文件,绘制所述当前组件,并执行步骤R11;
R11、所述客户端判断所述用户界面中是否包含未被绘制的组件,如果是,则返回步骤R1;否则,确定绘制组件完毕;
所述客户端根据所述各个组件的横屏显示信息绘制所述各个组件,具体包括:
S1、所述客户端从所述用户界面中选取一个未被绘制的组件作为当前组件;
S2、所述客户端判断是否需要向所述当前组件中填充图片,如果是,则执行步骤S4;否则,执行步骤S3;
S3、所述客户端根据所述当前组件的内容,获取需要填充到所述当前组件中的资源文件,根据所述资源文件、所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,并执行步骤S11;
S4、所述客户端判断所述设备的屏幕密度是否大于预设密度值,如果是,则执行步骤S5;否则,执行步骤S8;
S5、所述客户端根据所述当前组件的内容,获取对应的高分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤S7;否则,执行步骤S6;
S6、所述客户端根据所述高分辨率图片、所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,并执行步骤S11;
S7、所述客户端根据所述当前组件的内容,获取所述其他资源文件,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件,并执行步骤S11;
S8、所述客户端根据当前组件的内容,获取对应的低分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤S10;否则,执行步骤S9;
S9、所述客户端根据所述低分辨率图片、所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,并执行步骤S11;
S10、所述客户端根据所述当前组件的内容,获取除图片之外的其他资源文件,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及所述低分辨率图片和所述其他资源文件,绘制所述当前组件,并执行步骤S11;
S11、所述客户端判断所述用户界面中是否包含未被绘制的组件,如果是,则返回步骤S1;否则,确定绘制组件完毕。
27.如权利要求26所述的方法,其特征在于,所述客户端根据所述资源文件、所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,具体为:
所述客户端将所述全局模块的左上角作为坐标原点,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对所述当前组件进行定位,并将所述资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述高分辨率图片、当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,具体为:
所述客户端将所述全局模块的左上角作为坐标原点,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对所述当前组件进行定位,并将所述高分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件,具体为:
所述客户端将所述全局模块的左上角作为坐标原点,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对所述当前组件进行定位,并将所述高分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述低分辨率图片、所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,具体为:
所述客户端将所述全局模块的左上角作为坐标原点,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对所述当前组件进行定位,并将所述低分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及所述低分辨率图片和所述其他资源文件,所述绘制当前组件,具体为:
所述客户端将所述全局模块的左上角作为坐标原点,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对所述当前组件进行定位,并将所述低分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述资源文件、所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,具体为:
所述客户端将所述全局模块的左上角作为坐标原点,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对所述当前组件进行定位,并将所述资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述高分辨率图片、所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,具体为:
所述客户端将所述全局模块的左上角作为坐标原点,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对所述当前组件进行定位,并将所述高分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件,具体为:
所述客户端将所述全局模块的左上角作为坐标原点,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对所述当前组件进行定位,并将所述高分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述低分辨率图片、所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,具体为:
所述客户端将所述全局模块的左上角作为坐标原点,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对所述当前组件进行定位,并将所述低分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述客户端根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及所述低分辨率图片和所述其他资源文件,所述绘制当前组件,具体为:
所述客户端将所述全局模块的左上角作为坐标原点,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对所述当前组件进行定位,并将所述低分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示。
28.一种屏幕适配的装置,其特征在于,包括:
获取单元,用于从服务器端获取用户界面数据包;
解析单元,用于对所述获取单元获取到的所述用户界面数据包进行解析,得到各个模块的绘制信息和各个组件的绘制信息,所述用户界面中的模块按照垂直方向排列,每个模块包含一个或多个组件;
第一判断单元,用于对所述装置所在设备的屏幕方向进行判断;
处理单元,用于在所述第一判断单元判断出所述屏幕方向为竖屏时,将所述各个模块的显示宽度设置为所述设备的屏幕宽度,根据所述各个模块的显示宽度、所述各个模块的绘制信息、所述各个组件的绘制信息,获取所述各个组件的显示宽度、显示高度和显示坐标;根据所述各个组件的显示宽度、显示高度和显示坐标,以及需要填充到所述各个组件中的资源文件,绘制所述各个组件,并触发监控单元;
在所述第一判断单元判断出所述屏幕方向为横屏时,将所述各个模块的显示宽度设置为所述设备的屏幕高度,根据所述各个模块的显示宽度、所述各个模块的绘制信息、所述各个组件的绘制信息,获取所述各个组件的显示宽度、显示高度和显示坐标;根据所述各个组件的显示宽度、显示高度和显示坐标,以及需要填充到所述各个组件中的资源文件,绘制所述各个组件,并触发监控单元;
所述监控单元,用于监控所述设备的屏幕方向,并在监控到所述设备的屏幕方向发生变化时,触发所述第一判断单元对所述设备的屏幕方向进行判断;
所述处理单元,具体用于在所述第一判断单元判断出所述屏幕方向为竖屏时,执行以下操作:
B1、选取位于所述用户界面顶部的模块作为当前模块,将所述当前模块的显示坐标设置为设备屏幕的左上角,将所述当前模块的显示宽度设置为所述设备的屏幕宽度,根据所述当前模块的绘制信息和显示宽度,获取所述当前模块的显示高度;
B2、从所述当前模块中选取一个未被绘制的组件作为当前组件,根据所述当前模块的显示宽度、显示高度,以及所述当前组件的绘制信息,获取所述当前组件的显示宽度、显示高度和显示坐标;
B3、根据所述当前组件的显示宽度、显示高度和显示坐标,以及需要填充到所述当前组件中的资源文件,绘制所述当前组件;
B4、判断所述当前模块中是否包含未被绘制的组件,如果是,则返回步骤B2;否则,执行步骤B5;
B5、判断所述用户界面中是否包含未被处理过的模块,如果是,则执行步骤B6;否则,触发所述监控模块;
B6、获取所述当前模块的显示纵坐标与所述当前模块的显示高度相加得到的运算结果,选取所述用户界面中与所述当前模块相邻且位于所述当前模块下方的模块作为更新后的当前模块;
B7、将所述当前模块的显示纵坐标设置为所述运算结果,将所述当前模块的显示横坐标设置为零,将所述当前模块的显示宽度设置为设备的屏幕宽度,根据所述当前模块的绘制信息和显示宽度,获取所述当前模块的显示高度,并返回步骤B2。
29.如权利要求28所述的装置,其特征在于,还包括:
第二判断单元,用于判断所述设备是否为预设类型设备,如果是,则触发所述处理单元将所述各个模块的显示宽度设置为所述设备的屏幕宽度,根据所述各个模块的显示宽度、所述各个模块的绘制信息、所述各个组件的绘制信息,获取所述各个组件的显示宽度、显示高度和显示坐标;根据所述各个组件的显示宽度、显示高度和显示坐标,以及需要填充到所述各个组件中的资源文件,绘制所述各个组件,并触发监控单元;如果不是,则触发所述第一判断单元对所述设备的屏幕方向进行判断。
30.如权利要求28所述的装置,其特征在于,
所述处理单元,具体用于在所述第一判断单元判断出所述屏幕方向为横屏时,执行以下操作:
C1、选取位于所述用户界面顶部的模块作为当前模块,将所述当前模块的显示坐标设置为设备屏幕的左上角,将所述当前模块的显示宽度设置为所述设备的屏幕高度,根据所述当前模块的绘制信息和显示宽度,获取所述当前模块的显示高度;
C2、从所述当前模块中选取一个未被绘制的组件作为当前组件,根据所述当前模块的显示宽度、显示高度,以及所述当前组件的绘制信息,获取所述当前组件的显示宽度、显示高度和显示坐标;
C3、根据所述当前组件的显示宽度、显示高度和显示坐标,以及需要填充到所述当前组件中的资源文件,绘制所述当前组件;
C4、判断所述当前模块中是否包含未被绘制的组件,如果是,则返回步骤C2;否则,执行步骤C5;
C5、判断所述用户界面中是否包含未被处理过的模块,如果是,则执行步骤C6;否则,触发所述监控模块;
C6、获取所述当前模块的显示纵坐标与所述当前模块的显示高度相加得到的运算结果,选取所述用户界面中与所述当前模块相邻且位于所述当前模块下方的模块作为更新后的当前模块;
C7、将所述当前模块的显示纵坐标设置为所述运算结果,将所述当前模块的显示横坐标设置为零,将所述当前模块的显示宽度设置为设备的屏幕高度,根据所述当前模块的绘制信息和显示宽度,获取所述当前模块的显示高度,并返回步骤C2。
31.如权利要求28或30所述的装置,其特征在于,所述当前组件的绘制信息包括所述当前组件的相对坐标、相对宽度和相对高度,所述当前组件的相对坐标包括所述当前组件的相对横坐标和相对纵坐标;所述当前组件的显示坐标是以所述当前模块的左上角为坐标原点,所述当前组件的左上角的坐标;所述当前组件的显示坐标包括所述当前组件的显示纵坐标和显示横坐标;
所述处理单元根据所述当前模块的显示宽度、显示高度,以及所述当前组件的绘制信息,获取所述当前组件的显示宽度、显示高度和显示坐标,具体为:
所述处理单元将所述当前模块的显示宽度与所述当前组件的相对宽度相乘,得到所述当前组件的显示宽度;将所述当前模块的显示高度与所述当前组件的相对高度相乘,得到所述当前组件的显示高度;将所述当前模块的显示宽度与所述当前组件的相对横坐标相乘,得到所述当前组件的显示横坐标;将所述当前模块的显示高度与所述当前组件的相对纵坐标相乘,得到所述当前组件的显示纵坐标。
32.如权利要求28或30所述的装置,其特征在于,所述处理单元根据所述当前组件的显示宽度、显示高度和显示坐标,以及需要填充到所述当前组件中的资源文件,绘制所述当前组件,具体为:
所述处理单元执行以下操作:
D1、判断是否需要向所述当前组件中填充图片,如果是,则执行步骤D3;否则,执行步骤D2;
D2、根据所述当前组件的内容,获取需要填充到所述当前组件中的资源文件,根据所述资源文件以及所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件;
D3、判断所述设备的屏幕密度是否大于预设密度值,如果是,则执行步骤D4;否则,执行步骤D7;
D4、根据所述当前组件的内容,获取对应的高分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤D6;否则,执行步骤D5;
D5、根据所述高分辨率图片、所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件;
D6、根据所述当前组件的内容,获取所述其他资源文件,根据所述当前组件的显示宽度、显示高度和显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件;
D7、根据当前组件的内容,获取对应的低分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤D9;否则,执行步骤D8;
D8、根据所述低分辨率图片、所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件;
D9、根据所述当前组件的内容,获取除图片之外的其他资源文件,根据所述当前组件的显示宽度、显示高度和显示坐标,以及所述低分辨率图片和所述其他资源文件,绘制所述当前组件。
33.如权利要求32所述的装置,其特征在于,所述处理单元根据所述资源文件以及所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件,具体为:
所述处理单元将所述当前模块的左上角作为坐标原点,根据所述当前组件的显示宽度、显示高度和显示坐标,对所述当前组件进行定位,并将所述资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述处理单元根据所述高分辨率图片、所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件,具体为:
所述处理单元将所述当前模块的左上角作为坐标原点,根据所述当前组件的显示宽度、显示高度和显示坐标,对所述当前组件进行定位,并将所述高分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述处理单元根据所述当前组件的显示宽度、显示高度和显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件,具体为:
所述处理单元将所述当前模块的左上角作为坐标原点,根据所述当前组件的显示宽度、显示高度和显示坐标,对所述当前组件进行定位,并将所述高分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述处理单元根据所述低分辨率图片、所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件,具体为:
所述处理单元将所述当前模块的左上角作为坐标原点,根据所述当前组件的显示宽度、显示高度和显示坐标,对所述当前组件进行定位,并将所述低分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述处理单元根据所述当前组件的显示宽度、显示高度和显示坐标,以及所述低分辨率图片和所述其他资源文件,所述绘制当前组件,具体为:
所述处理单元将所述当前模块的左上角作为坐标原点,根据所述当前组件的显示宽度、显示高度和显示坐标,对所述当前组件进行定位,并将所述低分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示。
34.如权利要求32所述的装置,其特征在于,所述处理单元根据所述当前组件的内容,获取对应的高分辨率图片,具体为:
所述处理单元根据所述当前组件的内容中包含的图片信息,从本地存储的素材包中获取与所述图片信息对应的高分辨率图片;
或者,通过网络异步获取与所述图片信息对应的高分辨率图片;
或者,动态生成与所述图片信息对应的高分辨率图片;
所述处理单元根据所述当前组件的内容,获取对应的低分辨率图片,具体为:
所述处理单元根据所述当前组件的内容中包含的图片信息,从本地存储的素材包中获取与所述图片信息对应的低分辨率图片;
或者,通过网络异步获取与所述图片信息对应的低分辨率图片;
或者,动态生成与所述图片信息对应的低分辨率图片。
35.一种屏幕适配的装置,其特征在于,包括:
获取单元,用于从服务器端获取用户界面数据包;
解析单元,用于对所述获取单元获取到的所述用户界面数据包进行解析,得到全局模块的绘制信息和各个组件的绘制信息,所述全局模块包含所述用户界面中的所有组件;
第一判断单元,用于对所述装置所在设备的屏幕方向进行判断;
设置单元,用于在所述第一判断单元判断出所述屏幕方向为竖屏时,将所述全局模块的显示宽度设置为所述设备的屏幕宽度,根据所述全局模块的显示宽度和所述全局模块的绘制信息,获取所述全局模块的显示高度,并触发处理单元;
在所述第一判断单元判断出所述屏幕方向为横屏时,将所述全局模块的显示高度设置为所述设备的屏幕宽度,根据所述全局模块的显示高度和所述全局模块的绘制信息,获取所述全局模块的显示宽度,并触发处理单元;
所述处理单元,用于根据所述全局模块的显示宽度、所述全局模块的显示高度、所述各个组件的绘制信息,获取所述各个组件的显示宽度、显示高度和显示坐标;根据所述各个组件的显示宽度、显示高度和显示坐标,以及需要填充到所述各个组件中的资源文件,绘制所述各个组件,并触发监控单元;
所述监控单元,用于监控所述设备的屏幕方向,并在监控到所述设备的屏幕方向发生变化时,触发所述第一判断单元对所述设备的屏幕方向进行判断;
所述处理单元,具体用于执行以下操作:
F1、从所述全局模块中选取一个未被绘制的组件作为当前组件,根据所述全局模块的显示宽度、显示高度,以及所述当前组件的绘制信息,获取所述当前组件的显示宽度、显示高度和显示坐标;
F2、根据所述当前组件的显示宽度、显示高度和显示坐标,以及需要填充到所述当前组件中的资源文件,绘制所述当前组件;
F3、判断所述全局模块中是否包含未被绘制的组件,如果是,则返回步骤F1;否则,触发所述监控单元。
36.如权利要求35所述的装置,其特征在于,还包括:
第二判断单元,用于在所述第一判断单元判断出所述屏幕方向为竖屏时,根据所述全局模块的绘制信息,对所述全局模块的宽高比进行判断;
所述设置单元,具体用于在所述第二判断单元判断出所述全局模块的宽高比小于设备的屏幕宽高比时,将所述全局模块的显示高度设置为所述设备的屏幕高度,根据所述全局模块的显示高度和所述全局模块的绘制信息,获取所述全局模块的显示宽度,并触发所述处理单元;
在所述第二判断单元判断出所述全局模块的宽高比等于所述设备的屏幕宽高比时,将所述全局模块的显示高度设置为所述设备的屏幕高度,将所述全局模块的显示宽度设置为所述设备的屏幕宽度,并触发所述处理单元;
在所述第二判断单元判断出所述全局模块的宽高比大于所述设备的屏幕宽高比时,将所述全局模块的显示宽度设置为所述设备的屏幕宽度,根据所述全局模块的显示宽度和所述全局模块的绘制信息,获取所述全局模块的显示高度,并触发所述处理单元。
37.如权利要求35所述的装置,其特征在于,还包括:
第三判断单元,用于在所述第一判断单元判断出所述屏幕方向为横屏时,根据所述全局模块的绘制信息,对所述全局模块的宽高比进行判断;
所述设置单元,具体用于在所述第三判断单元判断出所述全局模块的宽高比等于所述设备的屏幕高宽比时,将全局模块的显示高度设置为设备的屏幕宽度,将全局模块的显示宽度设置为设备的屏幕高度,并触发所述处理单元;
在所述第三判断单元判断出所述全局模块的宽高比大于所述设备的屏幕高宽比时,将所述全局模块的显示宽度设置为所述设备的屏幕高度,根据所述全局模块的显示宽度和所述全局模块的绘制信息,获取所述全局模块的显示高度,并触发所述处理单元;
在所述第三判断单元判断出所述全局模块的宽高比小于所述设备的屏幕高宽比时,将所述全局模块的显示高度设置为所述设备的屏幕宽度,根据所述全局模块的显示高度和所述全局模块的绘制信息,获取所述全局模块的显示宽度,并触发所述处理单元。
38.如权利要求36或37所述的装置,其特征在于,所述全局模块的绘制信息为所述全局模块的宽高比或高宽比;
所述设置单元根据所述全局模块的显示宽度和所述全局模块的绘制信息,获取所述全局模块的显示高度,具体为:
所述设置单元将所述全局模块的显示宽度除以所述全局模块的宽高比,得到所述全局模块的显示高度;
或者,
将所述全局模块的显示宽度乘以所述全局模块的高宽比,得到所述全局模块的显示高度;
所述设置单元根据所述全局模块的显示高度和所述全局模块的绘制信息,获取所述全局模块的显示宽度,具体为:
所述设置单元将所述全局模块的显示高度乘以所述全局模块的宽高比,得到所述全局模块的显示宽度;
或者,
将所述全局模块的显示高度除以所述全局模块的高宽比,得到所述全局模块的显示宽度。
39.如权利要求35所述的装置,其特征在于,
所述设置单元,还用于将所述全局模块的中心点设置为与界面视图的中心点相同。
40.如权利要求35所述的装置,其特征在于,
所述设置单元,还用于将界面视图的背景设置为黑色。
41.如权利要求35所述的装置,其特征在于,所述当前组件的绘制信息包括所述当前组件的相对坐标、相对宽度和相对高度,所述当前组件的相对坐标包括所述当前组件的相对横坐标和相对纵坐标;所述当前组件的显示坐标是以所述全局模块的左上角为坐标原点,所述当前组件的左上角的坐标;所述当前组件的显示坐标包括所述当前组件的显示纵坐标和显示横坐标;
所述处理单元根据所述全局模块的显示宽度、显示高度,以及所述当前组件的绘制信息,获取所述当前组件的显示宽度、显示高度和显示坐标,具体为:
所述处理单元将所述全局模块的显示宽度与所述当前组件的相对宽度相乘,得到所述当前组件的显示宽度;将所述全局模块的显示高度与所述当前组件的相对高度相乘,得到所述当前组件的显示高度;将所述全局模块的显示宽度与所述当前组件的相对横坐标相乘,得到所述当前组件的显示横坐标;将所述全局模块的显示高度与所述当前组件的相对纵坐标相乘,得到所述当前组件的显示纵坐标。
42.如权利要求35所述的装置,其特征在于,所述处理单元执行所述步骤F2,具体为:
所述处理单元执行以下操作:
G1、判断是否需要向所述当前组件中填充图片,如果是,则执行步骤G3;否则,执行步骤G2;
G2、根据所述当前组件的内容,获取需要填充到所述当前组件中的资源文件,根据所述资源文件以及所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件;
G3、判断所述设备的屏幕密度是否大于预设密度值,如果是,则执行步骤G4;否则,执行步骤G7;
G4、根据所述当前组件的内容,获取对应的高分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤G6;否则,执行步骤G5;
G5、根据所述高分辨率图片、所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件;
G6、根据所述当前组件的内容,获取所述其他资源文件,根据所述当前组件的显示宽度、显示高度和显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件;
G7、根据当前组件的内容,获取对应的低分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤G9;否则,执行步骤G8;
G8、根据所述低分辨率图片、所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件;
G9、根据所述当前组件的内容,获取除图片之外的其他资源文件,根据所述当前组件的显示宽度、显示高度和显示坐标,以及所述低分辨率图片和所述其他资源文件,绘制所述当前组件。
43.如权利要求42所述的装置,其特征在于,
所述处理单元根据所述资源文件以及所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件,具体为:
所述处理单元将所述当前模块的左上角作为坐标原点,根据所述当前组件的显示宽度、显示高度和显示坐标,对所述当前组件进行定位,并将所述资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述处理单元根据所述高分辨率图片、所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件,具体为:
所述处理单元将所述当前模块的左上角作为坐标原点,根据所述当前组件的显示宽度、显示高度和显示坐标,对所述当前组件进行定位,并将所述高分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述处理单元根据所述当前组件的显示宽度、显示高度和显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件,具体为:
所述处理单元将所述当前模块的左上角作为坐标原点,根据所述当前组件的显示宽度、显示高度和显示坐标,对所述当前组件进行定位,并将所述高分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述处理单元根据所述低分辨率图片、所述当前组件的显示宽度、显示高度和显示坐标,绘制所述当前组件,具体为:
所述处理单元将所述当前模块的左上角作为坐标原点,根据所述当前组件的显示宽度、显示高度和显示坐标,对所述当前组件进行定位,并将所述低分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述处理单元根据所述当前组件的显示宽度、显示高度和显示坐标,以及所述低分辨率图片和所述其他资源文件,所述绘制当前组件,具体为:
所述处理单元将所述当前模块的左上角作为坐标原点,根据所述当前组件的显示宽度、显示高度和显示坐标,对所述当前组件进行定位,并将所述低分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示。
44.一种屏幕适配的装置,其特征在于,包括:
第一获取单元,用于从服务器端获取用户界面数据包;
解析单元,用于对所述第一获取单元获取到的所述用户界面数据包进行解析,得到各个模块的绘制信息和各个组件的绘制信息;
第二获取单元,用于根据所述装置所在设备的屏幕尺寸、所述各个模块的绘制信息和所述各个组件的绘制信息,获取并保存所述各个组件的竖屏显示信息;
第三获取单元,用于根据所述装置所在设备的屏幕尺寸、所述各个模块的绘制信息和所述各个组件的绘制信息,获取并保存所述各个组件的横屏显示信息;
第一判断单元,用于对所述设备的屏幕方向进行判断;
绘制单元,用于在所述第一判断单元判断出所述屏幕方向为竖屏时,根据所述各个组件的竖屏显示信息绘制所述各个组件,并触发监控单元;
在所述第一判断单元判断出所述屏幕方向为横屏时,根据所述各个组件的横屏显示信息绘制所述各个组件,并触发所述监控单元;
所述监控单元,用于监控所述设备的屏幕方向,并在监控到所述设备的屏幕方向发生变化时,触发所述第一判断单元对所述设备的屏幕方向进行判断;
所述监控单元,还用于监控所述各个组件的组件属性信息,并在监控到所述组件属性信息发生改变时,对改变后的组件属性信息进行保存;
所述装置,还包括:
第二判断单元,用于在所述监控单元监控到所述设备的屏幕方向发生变化时,判断所述监控单元是否保存有组件属性信息;
所述绘制单元,还用于在所述第二判断单元判断出所述监控单元保存有组件属性信息时,根据所述组件属性信息修改对应组件的属性,删除所述组件属性信息。
45.如权利要求44所述的装置,其特征在于,所述用户界面包括多个模块,所述用户界面中的各个模块按照垂直方向排列,每个模块包含一个或多个组件;所述各个组件的竖屏显示信息包括所述各个组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,所述各个组件的横屏显示信息包括所述各个组件的横屏显示宽度、横屏显示高度和横屏显示坐标;
所述第二获取单元,具体用于执行以下操作:
K1、选取位于所述用户界面顶部的模块作为当前模块,将所述当前模块的竖屏显示坐标设置为设备屏幕的左上角,保存所述当前模块的竖屏显示坐标,将所述当前模块的竖屏显示宽度设置为所述设备的屏幕宽度,根据所述当前模块的绘制信息和竖屏显示宽度,获取所述当前模块的竖屏显示高度;
K2、根据所述当前模块的竖屏显示宽度、竖屏显示高度,以及所述当前模块中的各个组件的绘制信息,获取并保存所述当前模块中的各个组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标;
K3、判断所述用户界面中是否包含未被处理过的模块,如果是,则执行步骤K4;否则,确定获取竖屏显示信息完毕;
K4、获取所述当前模块的竖屏显示纵坐标与所述当前模块的竖屏显示高度相加得到的运算结果,选取所述用户界面中与所述当前模块相邻且位于所述当前模块下方的模块作为更新后的当前模块;
K5、将所述当前模块的竖屏显示纵坐标设置为所述运算结果,将所述当前模块的竖屏显示横坐标设置为零,将所述当前模块的竖屏显示宽度设置为所述设备的屏幕宽度,根据所述当前模块的绘制信息和竖屏显示宽度,获取所述当前模块的竖屏显示高度,并返回步骤K2;
所述第三获取单元,具体用于执行以下操作:
L1、选取位于所述用户界面顶部的模块作为当前模块,将所述当前模块的横屏显示坐标设置为设备屏幕的左上角,保存所述当前模块的横屏显示坐标,将所述当前模块的横屏显示宽度设置为所述设备的屏幕高度,根据所述当前模块的绘制信息和横屏显示宽度,获取所述当前模块的横屏显示高度;
L2、根据所述当前模块的横屏显示宽度、横屏显示高度,以及所述当前模块中的各个组件的绘制信息,获取并保存所述当前模块中的各个组件的横屏显示宽度、横屏显示高度和横屏显示坐标;
L3、判断所述用户界面中是否包含未被处理过的模块,如果是,则执行步骤L4;否则,确定获取横屏显示信息完毕;
L4、获取所述当前模块的显示纵坐标与所述当前模块的横屏显示高度相加得到的运算结果,选取所述用户界面中与所述当前模块相邻且位于所述当前模块下方的模块作为更新后的当前模块;
L5、将所述当前模块的横屏显示纵坐标设置为所述运算结果,将所述当前模块的横屏显示横坐标设置为零,将所述当前模块的横屏显示宽度设置为所述设备的屏幕高度,根据所述当前模块的绘制信息和横屏显示宽度,获取所述当前模块的横屏显示高度,并返回步骤L2。
46.如权利要求45所述的装置,其特征在于,所述当前模块的绘制信息为所述当前模块的宽高比或高宽比;
所述第二获取单元根据所述当前模块的绘制信息和竖屏显示宽度,获取所述当前模块的竖屏显示高度,具体为:
所述第二获取单元将所述当前模块的竖屏显示宽度除以所述当前模块的宽高比,得到所述当前模块的竖屏显示高度;
或者,
将所述当前模块的竖屏显示宽度乘以所述当前模块的高宽比,得到所述当前模块的竖屏显示高度;
所述第三获取单元根据所述当前模块的绘制信息和横屏显示宽度,获取所述当前模块的横屏显示高度,具体为:
所述第三获取单元将所述当前模块的横屏显示宽度除以所述当前模块的宽高比,得到所述当前模块的横屏显示高度;
或者,
将所述当前模块的横屏显示宽度乘以所述当前模块的高宽比,得到所述当前模块的横屏显示高度。
47.如权利要求45所述的装置,其特征在于,所述各个组件的绘制信息包括所述各个组件的相对坐标、相对宽度和相对高度,所述各个组件的相对坐标包括所述各个组件的相对横坐标和相对纵坐标;所述各个组件的竖屏显示坐标和横屏显示坐标均是以所述当前模块的左上角为坐标原点,所述各个组件的左上角的坐标;所述各个组件的竖屏显示坐标包括所述各个组件的竖屏显示纵坐标和竖屏显示横坐标;所述各个组件的横屏显示坐标包括所述各个组件的横屏显示纵坐标和横屏显示横坐标;
所述第二获取单元根据所述当前模块的竖屏显示宽度、竖屏显示高度,以及所述当前模块中的各个组件的绘制信息,获取所述当前模块中的各个组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,具体为:
所述第二获取单元将所述当前模块的竖屏显示宽度分别与所述当前模块中的各个组件的相对宽度相乘,得到所述当前模块中的各个组件的竖屏显示宽度;将所述当前模块的竖屏显示高度与所述当前模块中的各个组件的相对高度相乘,得到所述当前模块中的各个组件的竖屏显示高度;将所述当前模块的竖屏显示宽度分别与所述当前模块中的各个组件的相对横坐标相乘,得到所述当前模块中的各个组件的竖屏显示横坐标;将所述当前模块的竖屏显示高度分别与所述当前模块中的各个组件的相对纵坐标相乘,得到所述各个组件的竖屏显示纵坐标;
所述第三获取单元根据所述当前模块的横屏显示宽度、横屏显示高度,以及所述当前模块中的各个组件的绘制信息,获取所述当前模块中的各个组件的横屏显示宽度、横屏显示高度和横屏显示坐标,具体为:
所述第三获取单元将所述当前模块的横屏显示宽度分别与所述当前模块中的各个组件的相对宽度相乘,得到所述当前模块中的各个组件的横屏显示宽度;将所述当前模块的横屏显示高度与所述当前模块中的各个组件的相对高度相乘,得到所述当前模块中的各个组件的横屏显示高度;将所述当前模块的横屏显示宽度分别与所述当前模块中的各个组件的相对横坐标相乘,得到所述当前模块中的各个组件的横屏显示横坐标;将所述当前模块的横屏显示高度分别与所述当前模块中的各个组件的相对纵坐标相乘,得到所述各个组件的横屏显示纵坐标。
48.如权利要求45所述的装置,其特征在于,还包括:
第四获取单元,用于根据所述设备的屏幕尺寸和所述解析单元解析得到的所述各个模块的绘制信息,获取并保存所述各个模块的竖屏显示坐标和横屏显示坐标;
所述绘制单元,具体用于在所述第一判断单元判断出所述屏幕方向为竖屏时,执行以下操作:
M1、从所述用户界面中选取一个未被处理过的模块作为当前模块,从所述当前模块中选取一个未被绘制的组件作为当前组件;
M2、判断是否需要向所述当前组件中填充图片,如果是,则执行步骤M4;否则,执行步骤M3;
M3、根据所述当前组件的内容,获取需要填充到所述当前组件中的资源文件,根据所述资源文件、所述当前模块的竖屏显示坐标以及所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,并执行步骤M11;
M4、判断所述设备的屏幕密度是否大于预设密度值,如果是,则执行步骤M5;否则,执行步骤M8;
M5、根据所述当前组件的内容,获取对应的高分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤M7;否则,执行步骤M6;
M6、根据所述高分辨率图片、所述当前模块的竖屏显示坐标以及所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,并执行步骤M11;
M7、根据所述当前组件的内容,获取所述其他资源文件,根据所述当前模块的竖屏显示坐标、所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件,并执行步骤M11;
M8、根据当前组件的内容,获取对应的低分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤M10;否则,执行步骤M9;
M9、根据所述低分辨率图片、所述当前模块的竖屏显示坐标以及所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,并执行步骤M11;
M10、根据所述当前组件的内容,获取除图片之外的其他资源文件,根据所述当前模块的竖屏显示坐标、所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及所述低分辨率图片和所述其他资源文件,绘制所述当前组件,并执行步骤M11;
M11、判断所述当前模块中是否包含未被绘制的组件,如果是,则从所述当前模块中选取一个未被绘制的组件作为当前组件,并返回步骤M2;否则,执行步骤M12;
M12、判断所述用户界面中是否包含未被处理过的模块,如果是,则返回步骤M1;否则,确定绘制组件完毕;
以及,
在所述第一判断单元判断出所述屏幕方向为横屏时,执行以下操作:
N1、从所述用户界面中选取一个未被处理过的模块作为当前模块,从所述当前模块中选取一个未被绘制的组件作为当前组件;
N2、判断是否需要向所述当前组件中填充图片,如果是,则执行步骤N4;否则,执行步骤N3;
N3、根据所述当前组件的内容,获取需要填充到所述当前组件中的资源文件,根据所述资源文件、所述当前模块的横屏显示坐标以及所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,并执行步骤N11;
N4、判断所述设备的屏幕密度是否大于预设密度值,如果是,则执行步骤N5;否则,执行步骤N8;
N5、根据所述当前组件的内容,获取对应的高分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤N7;否则,执行步骤N6;
N6、根据所述高分辨率图片、所述当前模块的横屏显示坐标以及所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,并执行步骤N11;
N7、根据所述当前组件的内容,获取所述其他资源文件,根据所述当前模块的横屏显示坐标、所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件,并执行步骤N11;
N8、根据当前组件的内容,获取对应的低分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤N10;否则,执行步骤N9;
N9、根据所述低分辨率图片、所述当前模块的横屏显示坐标以及所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,并执行步骤N11;
N10、根据所述当前组件的内容,获取除图片之外的其他资源文件,根据所述当前模块的横屏显示坐标、所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及所述低分辨率图片和所述其他资源文件,绘制所述当前组件,并执行步骤N11;
N11、判断所述当前模块中是否包含未被绘制的组件,如果是,则从所述当前模块中选取一个未被绘制的组件作为当前组件,并返回步骤N2;否则,执行步骤N12;
N12、判断所述用户界面中是否包含未被处理过的模块,如果是,则返回步骤N1;否则,确定绘制组件完毕。
49.如权利要求48所述的装置,其特征在于,所述绘制单元根据所述资源文件、所述当前模块的竖屏显示坐标以及所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,具体为:
所述绘制单元根据所述当前模块的竖屏显示坐标,确定所述当前模块的左上角的位置,并将所述当前模块的左上角作为坐标原点,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对所述当前组件进行定位,并将所述资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述绘制单元根据所述高分辨率图片、所述当前模块的竖屏显示坐标以及所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,具体为:
所述绘制单元根据所述当前模块的竖屏显示坐标,确定所述当前模块的左上角的位置,并将所述当前模块的左上角作为坐标原点,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对所述当前组件进行定位,并将所述高分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述绘制单元根据所述当前模块的竖屏显示坐标、所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件,具体为:
所述绘制单元根据所述当前模块的竖屏显示坐标,确定所述当前模块的左上角的位置,并将所述当前模块的左上角作为坐标原点,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对所述当前组件进行定位,并将所述高分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述绘制单元根据所述低分辨率图片、所述当前模块的竖屏显示坐标以及所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,具体为:
所述绘制单元根据所述当前模块的竖屏显示坐标,确定所述当前模块的左上角的位置,并将所述当前模块的左上角作为坐标原点,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对所述当前组件进行定位,并将所述低分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述绘制单元根据所述当前模块的竖屏显示坐标、所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及所述低分辨率图片和所述其他资源文件,所述绘制当前组件,具体为:
所述绘制单元根据所述当前模块的竖屏显示坐标,确定所述当前模块的左上角的位置,并将所述当前模块的左上角作为坐标原点,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对所述当前组件进行定位,并将所述低分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述绘制单元根据所述资源文件、所述当前模块的横屏显示坐标以及所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,具体为:
所述绘制单元根据所述当前模块的横屏显示坐标,确定所述当前模块的左上角的位置,并将所述当前模块的左上角作为坐标原点,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对所述当前组件进行定位,并将所述资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述绘制单元根据所述高分辨率图片、所述当前模块的横屏显示坐标以及所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,具体为:
所述绘制单元根据所述当前模块的横屏显示坐标,确定所述当前模块的左上角的位置,并将所述当前模块的左上角作为坐标原点,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对所述当前组件进行定位,并将所述高分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述绘制单元根据所述当前模块的横屏显示坐标、所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件,具体为:
所述绘制单元根据所述当前模块的横屏显示坐标,确定所述当前模块的左上角的位置,并将所述当前模块的左上角作为坐标原点,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对所述当前组件进行定位,并将所述高分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述绘制单元根据所述低分辨率图片、所述当前模块的横屏显示坐标以及所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,具体为:
所述绘制单元根据所述当前模块的横屏显示坐标,确定所述当前模块的左上角的位置,并将所述当前模块的左上角作为坐标原点,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对所述当前组件进行定位,并将所述低分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述绘制单元根据所述当前模块的横屏显示坐标、所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及所述低分辨率图片和所述其他资源文件,所述绘制当前组件,具体为:
所述绘制单元根据所述当前模块的横屏显示坐标,确定所述当前模块的左上角的位置,并将所述当前模块的左上角作为坐标原点,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对所述当前组件进行定位,并将所述低分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示。
50.如权利要求44所述的装置,其特征在于,所述用户界面包括全局模块,所述全局模块包含所述用户界面中的所有组件;
所述各个组件的竖屏显示信息包括所述各个组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,所述各个组件的横屏显示信息包括所述横屏显示宽度、横屏显示高度和横屏显示坐标;
所述第二获取单元,具体用于执行以下操作:
P1、根据所述全局模块的绘制信息,判断所述全局模块的宽高比进行判断,如果所述全局模块的宽高比小于所述设备的屏幕宽高比,则执行步骤P2;如果所述全局模块的宽高比等于所述设备的屏幕宽高比,则执行步骤P3;如果所述全局模块的宽高比大于所述设备的屏幕宽高比,则执行步骤P4;
P2、将所述全局模块的竖屏显示高度设置为所述设备的屏幕高度,根据所述全局模块的竖屏显示高度和所述全局模块的绘制信息,获取所述全局模块的竖屏显示宽度,并执行步骤P5;
P3、将所述全局模块的竖屏显示高度设置为所述设备的屏幕高度,将所述全局模块的竖屏显示宽度设置为所述设备的屏幕宽度,并执行步骤P5;
P4、将所述全局模块的竖屏显示宽度设置为所述设备的屏幕宽度,根据所述全局模块的竖屏显示宽度和所述全局模块的绘制信息,获取所述全局模块的竖屏显示高度,并执行步骤P5;
P5、根据所述全局模块的竖屏显示宽度、所述全局模块的竖屏显示高度以及所述各个组件的绘制信息,获取并保存所述各个组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标;
所述第三获取单元,具体用于执行以下操作:
Q1、根据所述全局模块的绘制信息,对所述全局模块的宽高比进行判断,如果所述全局模块的宽高比小于所述设备的屏幕高宽比,则执行步骤Q2;如果所述全局模块的宽高比等于所述设备的屏幕高宽比,则执行步骤Q3;如果所述全局模块的宽高比大于所述设备的屏幕高宽比,则执行步骤Q4;
Q2、将所述全局模块的横屏显示高度设置为所述设备的屏幕宽度,根据所述全局模块的横屏显示高度和所述全局模块的绘制信息,获取所述全局模块的横屏显示宽度,并执行步骤Q5;
Q3、将全局模块的横屏显示高度设置为设备的屏幕宽度,将全局模块的横屏显示宽度设置为设备的屏幕高度,并执行步骤Q5;
Q4、将所述全局模块的横屏显示宽度设置为所述设备的屏幕高度,根据所述全局模块的横屏显示宽度和所述全局模块的绘制信息,获取所述全局模块的横屏显示高度,并执行步骤Q5;
Q5、根据所述全局模块的横屏显示宽度、所述全局模块的横屏显示高度以及所述各个组件的绘制信息,获取并保存所述各个组件的横屏显示宽度、横屏显示高度和横屏显示坐标。
51.如权利要求50所述的装置,其特征在于,所述全局模块的绘制信息为所述全局模块的宽高比或高宽比;
所述第二获取单元根据所述全局模块的绘制信息和竖屏显示宽度,获取所述全局模块的竖屏显示高度,具体为:
所述第二获取单元将所述全局模块的竖屏显示宽度除以所述全局模块的宽高比,得到所述全局模块的竖屏显示高度;
或者,
将所述全局模块的竖屏显示宽度乘以所述全局模块的高宽比,得到所述全局模块的竖屏显示高度;
所述第三获取单元根据所述全局模块的绘制信息和横屏显示宽度,获取所述全局模块的横屏显示高度,具体为:
所述第三获取单元将所述全局模块的横屏显示宽度除以所述全局模块的宽高比,得到所述全局模块的横屏显示高度;
或者,
将所述全局模块的横屏显示宽度乘以所述全局模块的高宽比,得到所述全局模块的横屏显示高度。
52.如权利要求50所述的装置,其特征在于,所述各个组件的绘制信息包括所述各个组件的相对坐标、相对宽度和相对高度,所述各个组件的相对坐标包括所述各个组件的相对横坐标和相对纵坐标;所述各个组件的竖屏显示坐标和横屏显示坐标均是以所述全局模块的左上角为坐标原点,所述各个组件的左上角的坐标;所述各个组件的竖屏显示坐标包括所述各个组件的竖屏显示纵坐标和竖屏显示横坐标;所述各个组件的横屏显示坐标包括所述各个组件的横屏显示纵坐标和横屏显示横坐标;
所述第二获取单元根据所述全局模块的竖屏显示宽度、竖屏显示高度,以及所述各个组件的绘制信息,获取所述各个组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,具体为:
所述第二获取单元将所述全局模块的竖屏显示宽度分别与所述各个组件的相对宽度相乘,得到所述各个组件的竖屏显示宽度;将所述全局模块的竖屏显示高度分别与所述各个组件的相对高度相乘,得到所述各个组件的竖屏显示高度;将所述全局模块的竖屏显示宽度分别与所述各个组件的相对横坐标相乘,得到所述各个组件的竖屏显示横坐标;将所述全局模块的竖屏显示高度分别与所述各个组件的相对纵坐标相乘,得到所述各个组件的竖屏显示纵坐标;
所述第三获取单元根据所述全局模块的横屏显示宽度、横屏显示高度,以及所述各个组件的绘制信息,获取所述各个组件的横屏显示宽度、横屏显示高度和横屏显示坐标,具体为:
所述第三获取单元将所述全局模块的横屏显示宽度分别与所述各个组件的相对宽度相乘,得到所述各个组件的横屏显示宽度;将所述全局模块的横屏显示高度分别与所述各个组件的相对高度相乘,得到所述各个组件的横屏显示高度;将所述全局模块的横屏显示宽度分别与所述各个组件的相对横坐标相乘,得到所述各个组件的横屏显示横坐标;将所述全局模块的横屏显示高度分别与所述各个组件的相对纵坐标相乘,得到所述各个组件的横屏显示纵坐标。
53.如权利要求50所述的装置,其特征在于,
所述绘制单元,具体用于在所述第一判断单元判断出所述屏幕方向为竖屏时,执行以下操作:
R1、从所述用户界面中选取一个未被绘制的组件作为当前组件;
R2、判断是否需要向所述当前组件中填充图片,如果是,则执行步骤R4;否则,执行步骤R3;
R3、根据所述当前组件的内容,获取需要填充到所述当前组件中的资源文件,根据所述资源文件、所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,并执行步骤R11;
R4、判断所述设备的屏幕密度是否大于预设密度值,如果是,则执行步骤R5;否则,执行步骤R8;
R5、根据所述当前组件的内容,获取对应的高分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤R7;否则,执行步骤R6;
R6、根据所述高分辨率图片、所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,并执行步骤R11;
R7、根据所述当前组件的内容,获取所述其他资源文件,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件,并执行步骤R11;
R8、根据当前组件的内容,获取对应的低分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤R10;否则,执行步骤R9;
R9、根据所述低分辨率图片、所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,并执行步骤R11;
R10、根据所述当前组件的内容,获取除图片之外的其他资源文件,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及所述低分辨率图片和所述其他资源文件,绘制所述当前组件,并执行步骤R11;
R11、判断所述用户界面中是否包含未被绘制的组件,如果是,则返回步骤R1;否则,确定绘制组件完毕;
以及,
在所述第一判断单元判断出所述屏幕方向为横屏时,执行以下操作:
S1、从所述用户界面中选取一个未被绘制的组件作为当前组件;
S2、判断是否需要向所述当前组件中填充图片,如果是,则执行步骤S4;否则,执行步骤S3;
S3、根据所述当前组件的内容,获取需要填充到所述当前组件中的资源文件,根据所述资源文件、所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,并执行步骤S11;
S4、判断所述设备的屏幕密度是否大于预设密度值,如果是,则执行步骤S5;否则,执行步骤S8;
S5、根据所述当前组件的内容,获取对应的高分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤S7;否则,执行步骤S6;
S6、根据所述高分辨率图片、所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,并执行步骤S11;
S7、根据所述当前组件的内容,获取所述其他资源文件,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件,并执行步骤S11;
S8、根据当前组件的内容,获取对应的低分辨率图片,判断是否需要向所述当前组件中填充除图片之外的其他资源文件,如果是,则执行步骤S10;否则,执行步骤S9;
S9、根据所述低分辨率图片、所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,并执行步骤S11;
S10、根据所述当前组件的内容,获取除图片之外的其他资源文件,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及所述低分辨率图片和所述其他资源文件,绘制所述当前组件,并执行步骤S11;
S11、判断所述用户界面中是否包含未被绘制的组件,如果是,则返回步骤S1;否则,确定绘制组件完毕。
54.如权利要求53所述的装置,其特征在于,所述绘制单元根据所述资源文件、所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,具体为:
所述绘制单元将所述全局模块的左上角作为坐标原点,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对所述当前组件进行定位,并将所述资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述绘制单元根据所述高分辨率图片、当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,具体为:
所述绘制单元将所述全局模块的左上角作为坐标原点,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对所述当前组件进行定位,并将所述高分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述绘制单元根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件,具体为:
所述绘制单元将所述全局模块的左上角作为坐标原点,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对所述当前组件进行定位,并将所述高分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述绘制单元根据所述低分辨率图片、所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,绘制所述当前组件,具体为:
所述绘制单元将所述全局模块的左上角作为坐标原点,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对所述当前组件进行定位,并将所述低分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述绘制单元根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,以及所述低分辨率图片和所述其他资源文件,所述绘制当前组件,具体为:
所述绘制单元将所述全局模块的左上角作为坐标原点,根据所述当前组件的竖屏显示宽度、竖屏显示高度和竖屏显示坐标,对所述当前组件进行定位,并将所述低分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述绘制单元根据所述资源文件、所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,具体为:
所述绘制单元将所述全局模块的左上角作为坐标原点,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对所述当前组件进行定位,并将所述资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述绘制单元根据所述高分辨率图片、所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,具体为:
所述绘制单元将所述全局模块的左上角作为坐标原点,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对所述当前组件进行定位,并将所述高分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述绘制单元根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及所述高分辨率图片和所述其他资源文件,绘制所述当前组件,具体为:
所述绘制单元将所述全局模块的左上角作为坐标原点,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对所述当前组件进行定位,并将所述高分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示;
所述绘制单元根据所述低分辨率图片、所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,绘制所述当前组件,具体为:
所述绘制单元将所述全局模块的左上角作为坐标原点,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对所述当前组件进行定位,并将所述低分辨率图片填充到所述当前组件中,对所述当前组件进行显示;
所述绘制单元根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,以及所述低分辨率图片和所述其他资源文件,所述绘制当前组件,具体为:
所述绘制单元将所述全局模块的左上角作为坐标原点,根据所述当前组件的横屏显示宽度、横屏显示高度和横屏显示坐标,对所述当前组件进行定位,并将所述低分辨率图片以及所述其他资源文件填充到所述当前组件中,对所述当前组件进行显示。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410077059.0A CN103823620B (zh) | 2014-03-04 | 2014-03-04 | 一种屏幕适配的方法和装置 |
PCT/CN2015/073471 WO2015131787A1 (zh) | 2014-03-04 | 2015-03-02 | 一种屏幕适配的方法和装置 |
US15/122,647 US10089963B2 (en) | 2014-03-04 | 2015-03-02 | Screen adaptation method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410077059.0A CN103823620B (zh) | 2014-03-04 | 2014-03-04 | 一种屏幕适配的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103823620A CN103823620A (zh) | 2014-05-28 |
CN103823620B true CN103823620B (zh) | 2017-01-25 |
Family
ID=50758713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410077059.0A Active CN103823620B (zh) | 2014-03-04 | 2014-03-04 | 一种屏幕适配的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10089963B2 (zh) |
CN (1) | CN103823620B (zh) |
WO (1) | WO2015131787A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103823620B (zh) * | 2014-03-04 | 2017-01-25 | 飞天诚信科技股份有限公司 | 一种屏幕适配的方法和装置 |
CN105187634A (zh) * | 2015-08-07 | 2015-12-23 | 北京思特奇信息技术股份有限公司 | 一种终端应用动态适配智能终端屏幕的方法及系统 |
CN105159552B (zh) * | 2015-08-27 | 2019-04-23 | Oppo广东移动通信有限公司 | 一种浏览网页的翻页控制方法及用户终端 |
CN105760178B (zh) * | 2016-03-17 | 2019-03-26 | 网易(杭州)网络有限公司 | 对界面控件进行适配的方法及装置 |
CN105959825A (zh) * | 2016-04-29 | 2016-09-21 | 乐视控股(北京)有限公司 | 一种竖直全屏播放方法、装置及其移动播放终端 |
CN107094200B (zh) * | 2016-12-14 | 2020-03-10 | 口碑控股有限公司 | 一种视图调整的方法及装置 |
CN108205398B (zh) * | 2016-12-16 | 2021-06-11 | 腾讯科技(深圳)有限公司 | 网页动画适配屏幕的方法和装置 |
CN107168712B (zh) * | 2017-05-19 | 2021-02-23 | Oppo广东移动通信有限公司 | 界面绘制方法、移动终端及计算机可读存储介质 |
CN107300928B (zh) * | 2017-06-23 | 2019-11-05 | 京东方科技集团股份有限公司 | 一种电子设备及其控制方法、系统 |
CN107729072B (zh) * | 2017-08-25 | 2020-05-26 | 深圳壹账通智能科技有限公司 | 控件属性读取方法、装置、终端及可读存储介质 |
CN109783181B (zh) * | 2019-01-31 | 2019-12-20 | 掌阅科技股份有限公司 | 屏幕适配显示方法、电子设备及计算机存储介质 |
CN110851368A (zh) * | 2019-11-19 | 2020-02-28 | 天津车之家数据信息技术有限公司 | 一种多设备协同测试方法、装置、计算设备和系统 |
CN113126937B (zh) * | 2019-12-31 | 2023-08-01 | Tcl科技集团股份有限公司 | 一种显示终端调整方法及显示终端 |
CN111399789B (zh) * | 2020-02-20 | 2021-11-19 | 华为技术有限公司 | 界面布局方法、装置及系统 |
CN113741840A (zh) * | 2020-09-10 | 2021-12-03 | 华为技术有限公司 | 多窗口投屏场景下的应用界面显示方法及电子设备 |
CN112774186B (zh) * | 2021-01-08 | 2023-05-23 | 深圳市灰鲨科技有限公司 | 一种应用于智能终端的交互显示系统及方法 |
CN113422906B (zh) * | 2021-06-22 | 2022-08-26 | 平安普惠企业管理有限公司 | 设置分辨率的方法、装置、计算机设备和存储介质 |
CN114327335B (zh) * | 2021-12-27 | 2024-04-02 | 珠海豹趣科技有限公司 | 一种界面处理方法及装置 |
CN114489909B (zh) * | 2022-02-07 | 2023-09-08 | 智道网联科技(北京)有限公司 | 车载应用的屏幕适配方法、装置及电子设备、存储介质 |
CN114610426B (zh) * | 2022-03-04 | 2023-09-08 | 腾讯科技(深圳)有限公司 | 一种调整界面布局的方法、装置、设备及存储介质 |
CN114816632A (zh) * | 2022-04-22 | 2022-07-29 | 深圳市宇航软件股份有限公司 | 看板布局配置方法和装置、看板显示方法、设备和介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101369210A (zh) * | 2008-08-22 | 2009-02-18 | 深圳华为通信技术有限公司 | 一种调整用户界面元素的方法及装置 |
CN102890632A (zh) * | 2012-09-18 | 2013-01-23 | 深圳市融创天下科技股份有限公司 | 一种屏幕自适应方法、系统和终端设备 |
CN103164197A (zh) * | 2011-12-14 | 2013-06-19 | 中兴通讯股份有限公司 | Ui布局自适应方法、移动设备以及布局生成设备 |
CN103488403A (zh) * | 2013-08-30 | 2014-01-01 | 小米科技有限责任公司 | 界面布局切换方法、装置和移动终端 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007114456A1 (en) * | 2006-03-29 | 2007-10-11 | Casio Computer Co., Ltd. | Server apparatus of computer system |
JP5150213B2 (ja) * | 2007-11-07 | 2013-02-20 | 株式会社カテナス | 構造化文書描画システム、構造化文書描画方法およびプログラム |
US20120154297A1 (en) | 2010-12-21 | 2012-06-21 | Microsoft Corporation | Display-screen adaptation for interactive devices |
US8872855B2 (en) * | 2011-07-21 | 2014-10-28 | Flipboard, Inc. | Adjusting orientation of content regions in a page layout |
CN103823620B (zh) * | 2014-03-04 | 2017-01-25 | 飞天诚信科技股份有限公司 | 一种屏幕适配的方法和装置 |
-
2014
- 2014-03-04 CN CN201410077059.0A patent/CN103823620B/zh active Active
-
2015
- 2015-03-02 WO PCT/CN2015/073471 patent/WO2015131787A1/zh active Application Filing
- 2015-03-02 US US15/122,647 patent/US10089963B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101369210A (zh) * | 2008-08-22 | 2009-02-18 | 深圳华为通信技术有限公司 | 一种调整用户界面元素的方法及装置 |
CN103164197A (zh) * | 2011-12-14 | 2013-06-19 | 中兴通讯股份有限公司 | Ui布局自适应方法、移动设备以及布局生成设备 |
CN102890632A (zh) * | 2012-09-18 | 2013-01-23 | 深圳市融创天下科技股份有限公司 | 一种屏幕自适应方法、系统和终端设备 |
CN103488403A (zh) * | 2013-08-30 | 2014-01-01 | 小米科技有限责任公司 | 界面布局切换方法、装置和移动终端 |
Also Published As
Publication number | Publication date |
---|---|
US20170069297A1 (en) | 2017-03-09 |
WO2015131787A1 (zh) | 2015-09-11 |
US10089963B2 (en) | 2018-10-02 |
CN103823620A (zh) | 2014-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103823620B (zh) | 一种屏幕适配的方法和装置 | |
CN110377264B (zh) | 图层合成方法、装置、电子设备及存储介质 | |
CN107885848B (zh) | 基于web技术的网页截屏方法 | |
CN108920048B (zh) | 大型图纸浏览方法、系统、服务器及计算机可读存储介质 | |
CN111552530A (zh) | 用户界面的终端屏幕适配方法、装置及设备 | |
US20090002368A1 (en) | Method, apparatus and a computer program product for utilizing a graphical processing unit to provide depth information for autostereoscopic display | |
US20150110419A1 (en) | Method and device for image processing | |
CN107256259B (zh) | 页面显示方法、装置、电子设备以及存储介质 | |
CN105869199B (zh) | 用于处理动画的装置和方法 | |
CN103164519A (zh) | 调整工具栏色调的方法及装置 | |
CN113127784A (zh) | 大屏数据可视化显示方法、装置、存储介质和计算机设备 | |
US9679075B1 (en) | Efficient delivery of animated image files | |
CN106990962B (zh) | 动态锁屏壁纸切换方法、装置及终端 | |
CN107861711B (zh) | 页面适配方法及装置 | |
CN110851147B (zh) | 图像替换方法、装置和设备 | |
CN109389659A (zh) | Ppt中数学公式的渲染方法、装置、存储介质及终端设备 | |
GB2524047A (en) | Improvements in and relating to rendering of graphics on a display device | |
CN117290627B (zh) | 一种服务器端页面组件渲染方法、系统及介质 | |
CN105590241B (zh) | 自适应地电子票据实现方法及系统 | |
CN105389308B (zh) | 网页的显示处理方法及装置 | |
CN113791857A (zh) | Linux系统中应用窗口背景模糊处理方法及装置 | |
CN113592872A (zh) | 一种图片展示的方法、装置以及计算机存储介质 | |
JP5563545B2 (ja) | 情報処理装置及び方法 | |
CN109766530B (zh) | 图表边框的生成方法、装置、存储介质和电子设备 | |
CN104793837A (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 | ||
OL01 | Intention to license declared | ||
OL01 | Intention to license declared |