CN113467738A - 显示对象的屏幕适配方法及装置、电子设备和存储介质 - Google Patents
显示对象的屏幕适配方法及装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113467738A CN113467738A CN202110751438.3A CN202110751438A CN113467738A CN 113467738 A CN113467738 A CN 113467738A CN 202110751438 A CN202110751438 A CN 202110751438A CN 113467738 A CN113467738 A CN 113467738A
- Authority
- CN
- China
- Prior art keywords
- unit
- display
- screen
- size
- adaptation
- 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.)
- Pending
Links
- 230000006978 adaptation Effects 0.000 title claims abstract description 234
- 238000000034 method Methods 0.000 title claims abstract description 87
- 238000006243 chemical reaction Methods 0.000 claims description 66
- 230000003044 adaptive effect Effects 0.000 claims description 47
- 230000009471 action Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 14
- 230000015654 memory Effects 0.000 claims description 12
- 238000012544 monitoring process Methods 0.000 claims description 6
- 238000005096 rolling process Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract 1
- 230000008569 process Effects 0.000 description 18
- 238000013461 design Methods 0.000 description 9
- 238000011161 development Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000011423 initialization method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- 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/1415—Digital output to display device ; Cooperation and interconnection of the display device with other functional units with means for detecting differences between the image stored in the host and the images displayed on the displays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Controls And Circuits For Display Device (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请涉及设备显示技术领域,尤其涉及一种显示对象的屏幕适配方法及装置、电子设备和存储介质,其中,显示对象的屏幕适配方法包括:确定待显示的显示对象的目标尺寸单位和屏幕的屏幕尺寸单位;基于目标尺寸单位和屏幕尺寸单位,确定目标尺寸单位和屏幕尺寸单位之间的单位适配关系;根据单位适配关系,确定满足单位适配关系的显示适配量;基于显示适配量,在屏幕上适配显示显示对象。本申请的显示对象的屏幕适配方法及装置、电子设备和存储介质可以解决现有的显示对象在不同规格的屏幕上显示不适配的问题,允许通过单套布局文件实现显示对象在不同规格的屏幕上的适配显示。
Description
技术领域
本申请涉及设备显示技术领域,具体而言,涉及一种显示对象的屏幕适配方法及装置、电子设备和存储介质。
背景技术
随着电子设备的显示屏幕的不断革新,显示屏幕的型号和规格日趋多样化,不同型号和规格的显示屏幕的尺寸和分辨率不尽相同,这为应用开发中的对象显示带来了新问题。
以一些应用的用户界面(UI)页面显示为例,在应用运行期间,需要页面背景图能够与显示屏幕的尺寸适配,与此同时,还需要页面中的UI元素能够与页面背景图上的指定位置重合,以在显示屏幕上达到在设计过程中期望的UI页面的显示效果。
然而,由于不同显示屏幕的尺寸不同,使得同一应用的相同UI页面在不同尺寸的屏幕上显示时呈现出的效果差异较大,对此,尽管在UI页面的开发阶段,可以针对现有的多种型号的显示屏幕,编写多套布局文件来有针对性地适配各种显示屏幕,但是这大大增加了开发成本,不利于提高开发效率,并且这样的多套布局文件也无法适配到将来可能出现的新型号的屏幕。
发明内容
鉴于现有的显示对象在不同规格的屏幕上显示不适配的问题,本申请的目的在于提供一种显示对象的屏幕适配方法及装置、电子设备和存储介质,其能够通过基于显示对象的目标尺寸单位和屏幕的屏幕尺寸单位确定单位适配关系以及满足该单位适配关系的显示适配量,使得允许显示对象在不同规格的屏幕上适配显示。
第一方面,本申请实施例提供了一种显示对象的屏幕适配方法,所述屏幕适配方法包括:确定待显示的显示对象的目标尺寸单位和屏幕的屏幕尺寸单位;基于所述目标尺寸单位和所述屏幕尺寸单位,确定所述目标尺寸单位和所述屏幕尺寸单位之间的单位适配关系;根据所述单位适配关系,确定满足所述单位适配关系的显示适配量;基于所述显示适配量,在所述屏幕上适配显示所述显示对象。
进一步的,通过以下方式确定显示对象的目标尺寸单位:获取所述显示对象的布局文件;从所述布局文件中提取所述目标尺寸单位。
进一步的,通过以下方式生成所述布局文件:获取显示对象的对象尺寸参数和原始尺寸单位;用所述目标尺寸单位替换所述原始尺寸单位,获得所述显示对象的由所述对象尺寸参数和所述目标尺寸单位构成的布局尺寸;基于所述布局尺寸,生成所述显示对象的布局文件。
进一步的,所述对象尺寸参数包括第一维度尺寸参数和第二维度尺寸参数;所述布局尺寸包括第一维度布局尺寸和第二维度布局尺寸,用所述目标尺寸单位替换所述原始尺寸单位,获得所述显示对象的由所述对象尺寸参数和所述目标尺寸单位构成的布局尺寸,包括:用所述目标尺寸单位替换所述第一维度尺寸参数的原始尺寸单位,获得由所述第一维度尺寸参数和所述目标尺寸单位构成的所述第一维度布局尺寸;基于所述目标尺寸单位和所述原始尺寸单位,对所述显示对象的第二维度尺寸参数执行滚动布局包裹,获得所述显示对象的所述第二维度布局尺寸。
进一步的,基于所述目标尺寸单位和所述屏幕尺寸单位,确定所述目标尺寸单位和所述屏幕尺寸单位之间的单位适配关系,包括:基于所述目标尺寸单位和所述屏幕尺寸单位,确定运行环境的标准单位转换条件中的与所述目标尺寸单位和所述屏幕尺寸单位相关联的适配标准单位转换条件;基于所述适配标准单位转换条件,确定所述单位适配关系。
进一步的,根据所述单位适配关系,确定满足所述单位适配关系的显示适配量,包括:获取所述显示对象的对象尺寸参数和所述屏幕的屏幕尺寸参数;将所述对象尺寸参数和所述屏幕尺寸参数应用到所述单位适配关系,求解满足所述单位适配关系的所述显示适配量。
进一步的,基于所述显示适配量,在所述屏幕上适配显示所述显示对象,包括:用所述显示适配量,替换运行环境中的与所述显示适配量对应的适配显示系数;基于替换后的适配显示系数和所述显示对象的布局文件,在所述屏幕上适配显示所述显示对象。
进一步的,所述适配显示系数包括应用层面显示系数或页面层面显示系数,所述应用层面显示系数用于应用中所有页面的显示,所述页面层面显示系数用于当前页面的显示。
进一步的,确定待显示的显示对象的目标尺寸单位和屏幕的屏幕尺寸单位,包括:监听显示对象的动作,并在监听到所述显示对象执行新动作的情况下,识别所述显示对象是否具有适配接口;在识别到所述显示对象具有适配接口的情况下,确定待显示的显示对象的目标尺寸单位和屏幕的屏幕尺寸单位。
进一步的,所述适配接口预定义有所述显示对象的适配基准以及所述显示对象的与所述适配基准对应的对象尺寸参数;所述适配基准包括以所述显示对象的第一维度尺寸为基准或以所述显示对象的第二维度尺寸为基准,所述第一维度尺寸和所述第二维度尺寸为所述显示对象的在不同方向上的尺寸。
进一步的,所述显示对象包括用于生成用户界面页面的用户界面元素、用户界面元素之间的间隔、用户界面页面边框、用户界面页面背景图、用户界面页面背景图的位置中的一者或多者;所述目标尺寸单位包括磅、像素、设备独立像素、可伸缩像素、英寸、毫米中的任一者;所述屏幕尺寸单位包括磅、像素、设备独立像素、可伸缩像素、英寸、毫米中的任一者。
第二方面,本申请实施例还提供了一种显示对象的屏幕适配装置,所述屏幕适配装置包括:单位确定单元,确定显示对象的目标尺寸单位和屏幕的屏幕尺寸单位;适配关系确定单元,基于所述目标尺寸单位和所述屏幕尺寸单位,确定所述目标尺寸单位和所述屏幕尺寸单位之间的单位适配关系;适配量确定单元,根据所述单位适配关系,确定满足所述单位适配关系的显示适配量;适配显示单元,基于所述显示适配量,在所述屏幕上适配显示所述显示对象。
第三方面,本申请实施例还提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现如所述第一方面任一项所述的屏幕适配方法的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如所述第一方面任一项所述的屏幕适配方法的步骤。
本申请实施例提供的显示对象的屏幕适配方法及装置、电子设备和存储介质,可以基于待显示的显示对象和屏幕的尺寸单位之间的单位适配关系,并确定满足该单位适配关系的显示适配量,从而基于显示适配量将显示对象适配显示在屏幕上。与现有技术中的利用单套布局文件无法实现适配或者需要分别预编写针对不同规格的屏幕的多套布局文件的方法相比,根据本申请实施例的显示对象的屏幕适配方法及装置、电子设备和存储介质能够通过单套布局文件实现显示对象在不同规格的屏幕上的适配显示,并且能够使得不同显示对象之间精准定位,减小适配的工作量,提高工作效率。
进一步地,根据本申请的显示对象的屏幕适配方法及装置、电子设备和存储介质,可以从显示对象的布局文件中提取目标尺寸单位,从而可以根据需要显示的显示对象的预设布局文件来确定用于目标尺寸单位,实现针对不同的显示对象动态确定目标尺寸单位。
进一步地,根据本申请的显示对象的屏幕适配方法及装置、电子设备和存储介质,可以基于显示对象的对象尺寸参数和目标尺寸单位来生成布局文件,使得布局文件可以与屏幕适配过程相适应。
进一步地,根据本申请的显示对象的屏幕适配方法及装置、电子设备和存储介质,可以选择性地根据第一维度尺寸参数作为基准,对第二维度尺寸参数执行滚动布局包裹,以生成布局文件,从而可以允许在不同维度上实现对显示对象的适配显示。
进一步地,根据本申请的显示对象的屏幕适配方法及装置、电子设备和存储介质,可以基于运行环境的标准单位转换条件确定单位适配关系,从而可以根据运行环境中的单位转换规则来确定单位适配关系,以能够根据运行环境中的不同单位转换规则来实现适配。
进一步地,根据本申请的显示对象的屏幕适配方法及装置、电子设备和存储介质,可以利用显示适配量替换运行环境中的适配显示系数,实现在屏幕上的适配显示。此外,通过设置应用层面显示系数或页面层面显示系数,可以对应用中的所有页面的显示进行适配,或者对应用中的当前页面对的显示进行适配。
进一步地,根据本申请的显示对象的屏幕适配方法及装置、电子设备和存储介质,可以通过监听显示对象的动作并识别适配接口来确定是否执行适配过程,从而允许对不同的显示对象进行选择性的适配显示。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种显示对象的屏幕适配方法的流程示意图;
图2示出了本申请实施例所提供的一种显示对象的屏幕适配装置的结构示意图;
图3示出了本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的每个其他实施例,都属于本申请保护的范围。
首先,对本申请可适用的应用场景进行介绍。本申请可应用于诸如Android系统的操作系统的对象显示场景,但是应理解的是,本申请适用的应用场景不限于此,也可以应用于其他运行环境下的对象显示场景。总体上,本申请意在提供一种显示对象的屏幕适配显示的独特构思,而不意在限制该构思的具体应用场景或应用方式,只要是涉及到本申请所提供的构思的相关场景,即可应用本申请所提供的构思。
值得注意的是,随着设备硬件的发展,运行环境的差异化越来越大,在现有的一些屏幕显示中,系统或应用程序的显示无法与硬件设备良好适配,导致显示效果不佳。
以Android系统的应用开发为例,在一些UI页面中,需要设计UI元素与页面背景图的指定位置一一重合,以此实现背景图每个指定位置上的元素可编辑操作,这样的设计在网页端上实现较为容易,但是在Android原生端,由于Android碎片化严重,屏幕分辨率和屏幕尺寸种类繁多、型号各异,导致在各种分辨率和尺寸的设备上达到基本一致的显示效果是困难的。因此,在UI页面的布局定位中,如果采用绝对布局定位,一套布局文件仅能适配同一尺寸和分辨率的设备屏幕。如果需要适配多种屏幕尺寸和分辨率,则需要预先编写多套布局文件。在UI页面与屏幕不适配的情况下,不仅需要涉及到UI页面布局的问题,还需要考虑UI元素与背景图定位重合的问题。
对此,针对屏幕尺寸以像素(px)为单位的情况,Android系统提供了以设备独立像素(dp)单位来显示页面的方式来缓解屏幕差异所带来的显示适配问题,即,将dp单位转换为px单位。具体来说,dp单位本身与屏幕的像素单位无关,因此构建作为dp单位与px单位之间的转换量的屏幕像素密度用于将页面尺寸的dp单位转换为屏幕尺寸的px单位,不同屏幕的屏幕像素密度不同,但是对于同一屏幕而言,屏幕像素密度是固定的。在这种情况下,对UI元素进行定位时,仅仅通过对于元素与背景之间的间距、距离使用dp单位来定位,依然无法获得良好的适配显示。
举例来说,在Android系统中,显示对象的dp单位在显示对象渲染前可通过下式(1)至(3)转换为屏幕的px单位:
px=density×dp (1)
density=dpi/160 (2)
px=dp×(dpi/160) (3)
其中,density表示屏幕像素密度,dpi为屏幕像素密度的换算值(也称为“每英寸点数”),其表征图像每英寸长度内的像素点数,可以根据屏幕真实的分辨率和尺寸来计算得到,每个型号的屏幕具有对应的dpi。由上式可见,dpi不同会导致density不同,而density不同,则会导致屏幕在dp单位下的总尺寸(例如,总宽度或总高度)不同。
基于上面的公式,可以整理得到下式(4):
屏幕在px单位下的总尺寸/density=屏幕在dp单位下的总尺寸(4)
在此情况下,假定存在两个型号的屏幕,即屏幕1和屏幕2,其中,屏幕1的屏幕宽度为1080px、480dpi,则根据式(4),屏幕1在dp单位下的总宽度为1080/(480/160)=360dp;屏幕2的屏幕宽度为1440px、560dpi,则根据式(4),屏幕2在dp单位下的总宽度为1440/(560/160)=411dp。
由此可见,在屏幕尺寸不同的情况下,经上述公式换算得到的dp单位下的显示尺寸是不同的,而实际上,在单个布局文件中,显示对象的dp值是固定不变的,这就导致在不同尺寸的屏幕上显示时,显示对象可显示的范围是不同的。
继续以上面的示例为例,假定在布局文件中显示对象的宽度被设置为100dp,则在上述屏幕1上显示对象的显示宽度占整个屏幕1的屏幕宽度的27.8%(即,100/360=0.278);而在上述屏幕2上,显示对象的显示宽度占整个屏幕1的屏幕宽度的24.3%(即,100/411=0.243)。由此可知,同一dp值的显示对象在不同尺寸的屏幕上,显示的实际比例会发生较大的变化,人眼可观看的效果差异较大,例如,在像素越高的屏幕(例如屏幕2)上,显示范围会越来越小。
总的来说,在现有的屏幕显示方案中,无法实现使用单个布局文件对显示对象在不同尺寸的屏幕上进行适配显示。
基于此,本申请实施例提供了一种显示对象的屏幕适配方法,以允许使用单个布局文件将显示对象在不同尺寸的屏幕上适配显示,从而能够在不增加布局文件的情况下,将显示对象适配在所有设备屏幕上,并且还能够适应于将来可能出现的任何尺寸的屏幕。
下面将参照图1详细描述本申请实施例的显示对象的屏幕适配方法。这里,本申请实施例所提供的显示对象的屏幕适配方法的执行主体可以是诸如智能手机、平板电脑、电视、计算机等的电子设备的处理器。
如图1中所示,本申请实施例提供的显示对象的屏幕适配方法包括以下步骤:
S101、确定待显示的显示对象的目标尺寸单位和屏幕的屏幕尺寸单位。
在该步骤中,显示对象可以指待在屏幕上显示以呈现特定视觉效果的对象。例如,显示对象可以包括用于生成UI页面的UI元素、UI元素之间的间隔、UI页面边框、UI页面背景图、UI页面背景图的位置中的全部。这里,需要说明的是,尽管本文中以UI页面为例描述了显示对象,但是本申请实施例所述的显示对象不限于此,其也可以是指需要在屏幕上进行显示的任何对象。
显示对象的目标尺寸单位指的是用于将显示对象适配到屏幕的基准尺寸单位,其将参与到适配计算中,本屏幕适配方法即是将目标尺寸单位适配到屏幕尺寸单位的过程。作为示例,目标尺寸单位可以包括磅(pt)、像素(px)、设备独立像素(dp)、可伸缩像素(sp)、英寸(in)、毫米(mm)中的任一者。这里,目标尺寸单位与屏幕尺寸单位不同。
作为一示例,目标尺寸单位可以是显示对象的原始尺寸单位。例如,显示对象可以是UI设计图,目标尺寸单位可以是UI设计人员在设计UI图纸时所采用的原始尺寸单位。例如,显示对象的原始尺寸单位和目标尺寸单位均可以是dp。
作为另一示例,目标尺寸单位也可以是与原始尺寸单位之间存在单位转换关系的尺寸单位,而不是显示对象的原始尺寸单位本身。例如,显示对象的原始尺寸单位可以是px,而目标尺寸单位可以是pt。
作为示例,可以通过以下方式确定显示对象的目标尺寸单位:获取显示对象的布局文件;从布局文件中提取目标尺寸单位。
具体来说,在系统或应用开发阶段,需要为显示对象编写布局文件,以在系统或应用运行过程中通过调用该布局文件来显示相应的显示对象。布局文件中可包含显示对象的尺寸单位,可以将布局文件中设定的尺寸单位作为目标尺寸单位来进行适配显示。这里,布局文件的生成过程将在下文中详细描述。
屏幕尺寸单位指的是屏幕硬件本身的尺寸单位。屏幕尺寸单位可以从运行环境的系统参数中获取,例如,在Android系统下,可以从DisplayMetrics类中获取屏幕的尺寸单位。一般来说,现有的屏幕的尺寸单位通常为px,但是本申请实施例不限于此,屏幕尺寸单位也可以包括pt、dp、sp、in、mm中的任一者。
根据本申请的实施例,可通过以下方式生成显示对象的布局文件:S1011、获取显示对象的对象尺寸参数和原始尺寸单位;S1012、用目标尺寸单位替换原始尺寸单位,获得显示对象的由对象尺寸参数和目标尺寸单位构成的布局尺寸;S1013、基于布局尺寸,生成显示对象的布局文件。
在步骤S1011中,显示对象的对象尺寸参数可以是显示对象的原始设计图的尺寸参数,其为无单位的数值。对象尺寸参数可包括第一维度尺寸参数和第二维度尺寸参数。这里,第一维度尺寸和第二维度尺寸可以为显示对象的在不同方向上的尺寸,例如第一维度尺寸参数和第二维度尺寸参数可以分别为显示对象的宽度尺寸参数和高度尺寸参数。
在步骤S1012中,与对象尺寸参数对应地,布局尺寸可以包括第一维度布局尺寸和第二维度布局尺寸。
作为示例,在该步骤中,可以用目标尺寸单位替换第一维度尺寸参数的原始尺寸单位,获得由第一维度尺寸参数和目标尺寸单位构成的第一维度布局尺寸,并且可基于目标尺寸单位和原始尺寸单位,对显示对象的第二维度尺寸参数执行滚动布局包裹,获得显示对象的第二维度布局尺寸。
具体来说,可以在布局文件中定义显示对象的适配基准,例如,在第一维度尺寸参数和第二维度尺寸参数分别为宽度尺寸参数和高度尺寸参数的情况下,在定义了以宽为基准对显示对象进行适配的情况下,则显示对象的竖向布局可以通过例如竖直ScrollView执行滚动布局包裹,在定义了以高为基准对显示对象进行适配的情况下,则显示对象的横向布局可以通过例如横向HorizontalScrollView执行滚动布局包裹。
在步骤S1013中,可以将布局尺寸编写到显示对象的布局文件中。
上述生成显示对象的布局文件的方式可以在应用开发阶段执行,基于上述步骤生成的布局文件可用于在应用运行阶段实现显示对象在屏幕上的适配显示。
S102、基于目标尺寸单位和屏幕尺寸单位,确定目标尺寸单位和屏幕尺寸单位之间的单位适配关系。
在该步骤中,单位适配关系可以表征目标尺寸单位和屏幕尺寸单位之间的转换对应性,例如,其可以是单位转换的表达式。
在一示例中,单位适配关系可以基于运行环境来确定。具体来说,步骤S102可以包括以下操作:
S1021、基于目标尺寸单位和屏幕尺寸单位,确定运行环境的标准单位转换条件中的与目标尺寸单位和屏幕尺寸单位相关联的适配标准单位转换条件;
S1022、基于适配标准单位转换条件,确定单位适配关系。
具体来说,标准单位转换条件为运行环境中所规定的单位转换规则,在该运行环境下的所有单位转换动作均按照该规则来执行。这里,可以在标准单位转换条件中查找与目标尺寸单位和屏幕尺寸单位有关的适配标准单位转换条件,基于该适配标准单位转换条件,可确定单位适配关系。
以Android系统为例,在目标尺寸单位为pt且屏幕尺寸单位为px的情况下,系统中可存在用于单位px与单位pt之间进行单位转换的适配标准单位转换条件:
“case COMPLEX_UNIT_PX:return value;
case COMPLEX_UNIT_PT:return value*metrics.xdpi*(1.0f/72)”,
基于该适配标准单位转换条件,可提取出单位px与单位pt之间的单位适配关系,其可如下式(5)所示:
px单位尺寸=pt单位尺寸×DisplayMetrics.xdpi/72 (5)
在式(5)中,DisplayMetrics.xdpi为单位适配关系中的适配显示系数,在Android系统中,其表示Android系统中的用于显示的DisplayMetrics类,xdpi为DisplayMetrics类中的成员变量,DisplayMetrics实例可以通过Android系统中的Resources#getDisplayMetrics获得,其中,Resouces通过Activity或者Application的Context获得。由此式可知,在px单位的尺寸数值不变的情况,若要使得px单位的尺寸数值等于屏幕的真实数值,则需要动态地改变当前系统的适配显示系数DisplayMetrics.xdpi,这将在下文中详细描述。在本文中,显示系数(例如,适配显示系数和下文中提到的关联显示系数)指的是用于不同尺寸单位之间的转换的换算系数。
在另一示例中,单位适配关系也可以不从运行环境中确定。例如,单位适配关系可以是预存信息,例如,可以将现有的所有的目标尺寸单位和屏幕尺寸单位之间的转换表达式预先存储在存储器中,以供屏幕适配过程中直接被调用。
S103、根据单位适配关系,确定满足单位适配关系的显示适配量。
在该步骤中,显示适配量可以用于将显示对象适配到屏幕,其可根据单位适配关系来确定。
作为示例,步骤S103可包括:S1031、获取显示对象的对象尺寸参数和屏幕的屏幕尺寸参数;S1032、将对象尺寸参数和屏幕尺寸参数应用到单位适配关系,求解满足单位适配关系的显示适配量。
在步骤S1031中,如上文所述,显示对象的对象尺寸参数可以是显示对象的原始设计图的尺寸参数,其为无单位的数值。对象尺寸参数可以包括显示对象的在多个不同的维度上的尺寸参数,例如,对象尺寸参数可以包括显示对象的高度尺寸参数和宽度尺寸参数。
在一示例中,对象尺寸参数可以从显示对象的布局文件中获取。在另一示例中,对象尺寸参数可以从为显示对象预设的适配接口获取,适配接口中可包含预存储的显示对象的对象尺寸参数。将在下文中详细描述适配接口的具体设置方式。
在步骤S1031中,屏幕尺寸参数可以从运行环境的系统参数中获取。例如,在Android系统下,可以在创建用于适配的核心类,该核心类用于计算并保存适配过程中涉及的属性值,该核心类例如可命名为AutoFit类,可在AutoFit类中进行初始化,以获取并保存当前应用级别的DisplayMetrics类中的widthPixels的值和heightPixels的值分别作为屏幕的宽度尺寸参数和高度尺寸参数。
在步骤S1032中,可将无单位的对象尺寸参数和屏幕尺寸参数带入到在步骤S102中确定的单位适配关系,求解出显示适配量。
在该步骤中,显示适配量可以用于改变运行环境的单位适配关系中的适配显示系数,以基于需要显示的显示对象的尺寸和当前的屏幕的尺寸动态地建立新的单位适配关系,并替换运行环境中原有的单位适配关系,以达到显示对象与屏幕之间的良好的适配效果。
具体来说,在通过对象尺寸参数和屏幕尺寸参数计算显示适配量的过程中,可不考虑对象尺寸参数的单位,仅带入其尺寸数值即可。
这里,在根据本申请实施例的屏幕适配方法中,由于可以针对需要显示的显示对象的对象尺寸参数和屏幕的屏幕尺寸参数,基于单位适配关系,动态地求解满足单位适配关系的显示适配量,使得可通过动态求得的显示适配量,对具有任意单位的原始设计图的显示对象进行屏幕显示适配,因此允许在仅关注/存储/使用显示对象的原始设计图的尺寸数值而无需考虑其尺寸单位的情况下进行显示适配,从而提高适配方案的普适性和应用灵活性。
S104、基于显示适配量,在屏幕上适配显示显示对象。
在该步骤中,可以根据步骤S102中的单位适配关系的确定方式相应地进行适配显示。
在一示例中,在运行环境中存在标准单位转换条件的情况下,可以用基于对象尺寸参数和屏幕尺寸参数动态求得的显示适配量替换运行环境的标准单位转换条件中与显示适配量对应的适配显示系数,并基于替换后的适配显示系数和显示对象的布局文件,在屏幕上适配显示显示对象。
适配显示系数可以是运行环境中用于屏幕显示的参数。以Android系统为例,系统可具有用于屏幕显示的DisplayMetrics类,适配显示系数可以是DisplayMetrics类的成员变量。这里,与显示适配量对应的适配显示系数指的是在确定单位适配关系的过程中所涉及到的显示系数,例如如上面步骤S102中所提到的基于标准单位转换条件确定的单位适配关系中的适配显示系数,例如上文中提到的Android系统中的DisplayMetrics.xdpi值。
换言之,在该示例中,显示适配量是与运行环境的标准单位转换条件中的适配显示系数对应的量,用求得的显示适配量替换运行环境中的适配显示系数,即是可以根据显示对象动态改变运行环境的显示规则的过程。
作为示例,在显示对象为UI页面的情况下,适配显示系数可以包括应用层面显示系数或页面层面显示系数,其中,应用层面显示系数用于应用中所有页面的显示,页面层面显示系数用于当前页面的显示。
应用层面显示系数可以作为当前应用的全局显示系数。例如,在初次运行应用时,可以用初次求得的显示适配量替换应用中用于所有页面的适配显示系数,在应用的后续运行中,在显示该应用中的每个页面时,运行环境可以调用已被替换的适配显示系数,进行适配显示。这里,在适配显示系数为应用层面显示系数时,优选地适用于应用中的所有页面具有相同的尺寸参数的情况。
页面层面显示系数可以作为当前应用的局部显示系数。例如,应用中的每个页面或包括具有相同尺寸参数的多个页面的一组页面可具有相同的适配显示系数。
在应用运行期间,在显示单个页面时,可以实时计算该页面的适配显示适配量并用计算的显示适配量替换运行环境中的用于该页面的适配显示系数,从而可基于替换后的适配显示系数对该页面进行显示。
在所显示的页面属于特定的页面组时,可以在初次显示该页面组中的页面时计算用于该页面组的显示适配量,并将存储该显示适配量,在后续显示该页面组中的其他页面时,可调取该页面组的显示适配量,并用其替换运行环境中相应的适配显示系数,以对页面进行适配显示。
在另一示例中,也可以不修改运行环境中的标准单位转换条件,而是可以将显示适配量直接作为适配显示参数,在屏幕上显示显示对象。具体来说,当在屏幕上显示该显示对象时,可经由显示适配量将该显示对象的在目标尺寸单位下的尺寸转换为屏幕尺寸单位下的尺寸,然后将尺寸转换后的显示对象显示在屏幕上,如此,由于尺寸转换后的显示对象具有与屏幕相同的尺寸单位,因此可良好地在屏幕上适配,即,显示对象可被完整地显示并且其填充在整个屏幕上。
此外,在步骤S104中,在运行环境中存在标准单位转换条件的情况下,可用显示适配量替换标准单位转换条件中的适配标准单位转换条件中的适配显示系数。
这里,在一些示例中,有利的是,适配显示系数为无关联显示系数,无关联显示系数指的是该显示系数仅与适配标准单位转换条件相关联,而不涉及除了适配标准单位转换条件之外的其他标准单位转换条件。具体来说,在上面式(5)所示的示例中,通过动态改变显示对象的DisplayMetrics.xdpi,显示对象可通过使用替换后的DisplayMetrics.xdpi值来计算显示对象的尺寸大小,如此,可仅改变与当前显示对象相关的显示系数,而不会改变运行环境中的其他显示系数。
在另一些示例中,适配标准单位转换条件中的适配显示系数可关联到多个单位之间的转换规则。
具体来说,仍以Android系统为例,系统中可存在标准单位转换条件:
“case COMPLEX_UNIT_PX:return value;
case COMPLEX_UNIT_DIP:return value*metrics.density;
case COMPLEX_UNIT_SP:return value*metrics.scaledDensity”,
在目标尺寸单位为dp且屏幕尺寸单位为px的情况下,可从上述标准单位转换条件中提取用于单位px与单位dp之间进行单位转换的适配标准单位转换条件:
“case COMPLEX_UNIT_PX:return value;
case COMPLEX_UNIT_DIP:return value*metrics.density”。
根据上文描述的步骤S1022,基于该标准单位转换条件,可提取出单位px与单位dp之间的单位适配关系,其可如下式(6)所示:
px单位尺寸=dp单位尺寸×density (6)
在式(6)中,density为单位适配关系中的适配显示系数。由此式可知,在px单位的尺寸数值不变的情况,若要使得px单位的尺寸数值等于屏幕的真实数值,则在步骤S104中,需要动态地改变当前系统的适配显示系数density,即用动态求得的显示适配量targetDensity替换该适配显示系数density。
在此情况下,如上述标准单位转换条件中所示,在Android系统中,还存在与上述适配标准单位转换条件相关联的关联标准单位转换条件:
“case COMPLEX_UNIT_SP:return value*metrics.scaledDensity”,
结合适配标准单位转换条件和关联标准单位转换条件可知,density与scaledDensity为相关的显示系数,例如,scaledDensity等于density或者与density成正相关。当density改变时,scaledDensity也会随之改变,因此,为了在单位px与单位dp之间进行转换的过程中,不影响单位px与单位sp之间的转换关系,即,在改变density的过程中,不改变scaledDensity的值,则需要在显示对象的适配过程中,对scaledDensity进行相应变换,以使得单位px与单位sp之间的转换关系不会被一同改变。
具体来说,单位px与单位sp之间可存在如下式(7)所示的单位转换关系:
px单位尺寸=sp单位尺寸×scaledDensity (7)
在式(7)中,scaledDensity为px单位尺寸与sp单位尺寸之间转换的显示系数,其为与适配显示系数density关联的关联显示系数。由此式可知,当关联显示系数scaledDensity随适配显示系数density的改变而改变时,px单位尺寸与sp单位尺寸之间转换关系也会随之改变,在此情况下,为了保持px单位尺寸与sp单位尺寸之间转换关系不会改变,可控制关联显示系数scaledDensity,具体来说,可通过下式(8)确定与被替换后的适配显示系数(即,显示适配量targetDensity)相应的新的关联显示系数(在下文中,也称为“关联适配量”)targetscaledDensity:
targetscaledDensity=targetDensity×(scaledDensity/density) (8)
在上式(8)中,新的关联显示系数targetscaledDensity与被替换后的适配显示系数targetDensity之间的比例关系与原始的关联显示系数scaledDensity与显示系数density之间的比例关系保持一致,使得在用显示适配量替换适配显示系数density后,不会改变涉及关联显示系数的单位转换关系。
因此,基于上述考虑,在单位适配关系基于运行环境来确定的示例中,在根据单位适配关系确定满足单位适配关系的显示适配量后,根据本申请的实施例的屏幕适配方法还可以包括:
S105、基于单位适配关系,确定单位适配关系中的适配显示系数,并确定运行环境的标准单位转换条件中的与适配显示系数相关联的关联适配系数。
在步骤S105中,适配显示系数可以指的是在目标尺寸单位和屏幕尺寸单位之间的单位适配关系中,用于表征目标尺寸单位和屏幕尺寸单位之间的比例关系的系数,例如上文中描述的显示系数density。关联适配系数可以指的是在运行环境的标准单位转换条件中与适配显示系数存在预定义的换算关系的显示系数,例如上文中描述的显示系数scaledDensity。
S106、根据适配显示系数和关联适配系数,基于运行环境的标准单位转换条件,构建适配显示系数和关联适配系数之间的关联适配关系。
在步骤S106中,可以基于运行环境的标准单位转换条件推导出适配显示系数和关联适配系数之间的关联适配关系,这里,关联适配关系可以是在运行环境的标准单位转换条件中预定义的适配显示系数和关联适配系数之间的换算关系,例如上文中描述的显示系数density与显示系数scaledDensity的正相关关系。
S107、根据关联适配关系和显示适配量计算关联适配量,并用关联适配量替换关联适配系数。
在步骤S107中,关联适配量指的是用于根据显示适配量相对于适配显示系数的变化量而修正关联适配系数的量,例如上文中描述的式(8)中的targetscaledDensity,从而可以用关联适配量替换关联适配系数,以确保在对目标尺寸单位和屏幕尺寸单位进行适配的过程中不会影响其他关联的尺寸单位之间的转换关系。
作为示例,在Android系统中,上文中描述的屏幕适配方法可以通过继承系统的Application类并重写其onCreate方法来启动执行。具体来说,在onCreate方法中,可以调用用于适配的核心类AutoFit类的初始化方法,以启动整个屏幕适配方法的执行。此外,在初次运行应用时,可以自动执行上文中描述的屏幕适配方法,在后续每次打开显示对象时,可针对所打开的显示对象自动执行屏幕适配。
根据本申请的实施例的屏幕适配方法可以基于待显示的显示对象和屏幕的尺寸单位之间的单位适配关系,并确定满足该单位适配关系的显示适配量,从而基于显示适配量将显示对象适配显示在屏幕上,根据该方法,可以基于单套布局文件将显示对象在不同规格的屏幕上适配显示,无需针对每个屏幕编写多套布局文件,提高了开发效率,并且可适用于任意现有型号或未来将出现的新型号的屏幕,普适性较强。
此外,由于根据本申请的实施例的屏幕适配方法可以适用于任意类型的显示对象,例如可适用于UI页面的页面背景图、UI元素、元素之间的间距、页面边框等,因此,可以基于同样的适配方法对不同类型的显示对象进行显示,从而可保持显示对象之间的相对位置关系,例如可以保持UI页面的页面背景图与UI元素之间的预设定位关系,使得UI元素与页面背景图中的指定位置精准重合。
此外,根据本申请的实施例的屏幕适配方法,确定待显示的显示对象的目标尺寸单位和屏幕的屏幕尺寸单位还可以包括以下步骤:
S1014、监听显示对象的动作,并在监听到显示对象执行新动作的情况下,识别显示对象是否具有适配接口;
S1015、在识别到显示对象具有适配接口的情况下,确定待显示的显示对象的目标尺寸单位和屏幕的屏幕尺寸单位。
在步骤S1014中,显示对象的动作可以指的是与显示对象的显示相关的操作,例如其可以包括打开、更新、移动或缩放显示对象。
适配接口可以是用于标识显示对象是否需要适配的接口。每个显示对象可设置有相应的适配接口。
当监听到显示对象执行新的动作时,可以识别该显示对象是否具有适配接口。作为示例,在Android系统中,可以在上文中提到的为该屏幕适配方法所创建的核心类AutoFit类的初始化中,注册显示对象的生命周期回调,Application对象可以调用运行环境中的registerActivityLifecycleCallbacks(ActivityLifecycleCallbacks)方法,以将所实现的ActivityLifecycleCallbacks所监听的每个显示对象的生命周期回调给应用的Application对象进行监听。如此,在创建新的显示对象时,将回调所实现的ActivityLifecycleCallbacks。
在识别到显示对象具有适配接口的情况下,在步骤S1015中,可以执行屏幕适配的过程。在没有识别到显示对象具有适配接口的情况下,可以认为当前的显示对象无需进行适配显示,可将显示对象直接显示在屏幕上。
这里,作为示例,适配接口可预定义有显示对象的适配基准以及显示对象的与适配基准对应的对象尺寸参数。
适配基准可以指的是对显示对象进行适配显示的尺寸维度基准,其可以包括以显示对象的第一维度尺寸为基准或以显示对象的第二维度尺寸为基准,第一维度尺寸和第二维度尺寸为显示对象的在不同方向上的尺寸,例如第一维度尺寸和第二维度尺寸可以分别为显示对象的宽度尺寸和高度尺寸,然而本申请不限于此,第一维度尺寸和第二维度尺寸也可以根据需要来定义,例如,第一维度尺寸和第二维度尺寸中的至少一者可以是显示对象的对角线尺寸。
在识别到显示对象具有适配接口的情况下,可以调取适配接口中预定义的信息,以执行屏幕适配过程。作为示例,在Android系统中,在监听类中的onActivityCreated(Activity activity,Bundle savedInstanceState)方法中,可判断当前的活动显示对象是否具有适配接口,若具有适配接口,则可通过适配接口获取为当前显示对象设置的适配基准以及对象尺寸参数,例如,设计图的总设计宽度(在适配基准为宽度的情况下)或总设计高度(在适配基准为高度的情况下)。在对显示对象初始化时,可自动获取适配接口中预定义的信息的返回值来修改当前显示对象的尺寸参数。
在本申请实施例的上述方法中,为显示对象设置适配接口并监听每个显示对象的动作,使得可以对现有的应用进行部分显示对象的修改。具体来说,在已经完成创建或已经被安装使用的应用中,应用中已存在的显示对象(例如,旧的UI页面)可能不具有适配显示的需求,而在更新该应用时,新添加的显示对象(例如,新的UI页面)可需要适配显示,因此,可为新添加的显示对象设置适配接口,而之前已存在的显示对象不具有适配接口。当监听到应用中的显示对象执行新的动作时,可首先判断执行动作的显示对象是否具有适配接口,即,可以区分该显示对象是无需进行适配显示的之前已存在的显示对象,还是需要进行适配显示的新添加的显示对象,由此,可根据是否具有适配接口,对显示对象进行相应的显示,即执行适配显示或直接显示。
基于同一申请构思,本申请实施例还提供了一种显示对象的屏幕适配装置,显示对象的屏幕适配装置主要用于执行本申请实施例上述内容所提供的显示对象的屏幕适配方法,以下对本申请实施例提供的显示对象的屏幕适配装置作具体介绍。
图2示出了本申请实施例所提供的一种显示对象的屏幕适配装置的结构示意图。显示对象的屏幕适配装置可包括单位确定单元10、适配关系确定单元20、适配量确定单元30和适配显示单元40,其中,
单位确定单元10,用于确定待显示的显示对象的目标尺寸单位和屏幕的屏幕尺寸单位;
适配关系确定单元20,用于基于目标尺寸单位和屏幕尺寸单位,确定目标尺寸单位和屏幕尺寸单位之间的单位适配关系;
适配量确定单元30,用于根据单位适配关系,确定满足单位适配关系的显示适配量;
适配显示单元40,用于基于显示适配量,在屏幕上适配显示显示对象。
在根据本申请实施例的显示对象的屏幕适配装置中,可以基于待显示的显示对象和屏幕的尺寸单位之间的单位适配关系,并确定满足该单位适配关系的显示适配量,从而基于显示适配量将显示对象适配显示在屏幕上,根据该方法,可以基于单套布局文件将显示对象在不同规格的屏幕上适配显示,无需针对每个屏幕编写多套布局文件,提高了开发效率,并且可适用于任意现有型号或未来将出现的新型号的屏幕,普适性较强。
进一步地,单位确定单元10通过以下方式确定显示对象的目标尺寸单位:获取显示对象的布局文件;从布局文件中提取目标尺寸单位。
进一步地,显示对象的屏幕适配装置还可包括布局单元,布局单元通过以下方式生成布局文件:获取显示对象的对象尺寸参数和原始尺寸单位;用目标尺寸单位替换原始尺寸单位,获得显示对象的由对象尺寸参数和目标尺寸单位构成的布局尺寸;基于布局尺寸,生成显示对象的布局文件。
进一步地,对象尺寸参数包括第一维度尺寸参数和第二维度尺寸参数;布局尺寸包括第一维度布局尺寸和第二维度布局尺寸。适配关系确定单元20还用于:用目标尺寸单位替换第一维度尺寸参数的原始尺寸单位,获得由第一维度尺寸参数和目标尺寸单位构成的第一维度布局尺寸;基于目标尺寸单位和原始尺寸单位,对显示对象的第二维度尺寸参数执行滚动布局包裹,获得显示对象的第二维度布局尺寸。
进一步地,适配关系确定单元20还用于:基于目标尺寸单位和屏幕尺寸单位,确定运行环境的标准单位转换条件中的与目标尺寸单位和屏幕尺寸单位相关联的适配标准单位转换条件;基于适配标准单位转换条件,确定单位适配关系。
进一步地,适配量确定单元30还用于:获取显示对象的对象尺寸参数和屏幕的屏幕尺寸参数;将对象尺寸参数和屏幕尺寸参数应用到单位适配关系,求解满足单位适配关系的显示适配量。
进一步地,适配显示单元40还用于:用显示适配量,替换运行环境中的与显示适配量对应的适配显示系数;基于替换后的适配显示系数和显示对象的布局文件,在屏幕上适配显示显示对象。
进一步地,适配显示系数包括应用层面显示系数或页面层面显示系数,应用层面显示系数用于应用中所有页面的显示,页面层面显示系数用于当前页面的显示。
进一步地,单位确定单元10还用于:监听显示对象的动作,并在监听到显示对象执行新动作的情况下,识别显示对象是否具有适配接口;在识别到显示对象具有适配接口的情况下,确定待显示的显示对象的目标尺寸单位和屏幕的屏幕尺寸单位。
进一步地,适配接口预定义有显示对象的适配基准以及显示对象的与适配基准对应的对象尺寸参数。适配基准包括以显示对象的第一维度尺寸为基准或以显示对象的第二维度尺寸为基准,第一维度尺寸和第二维度尺寸为显示对象的在不同方向上的尺寸。
进一步地,显示对象包括用于生成用户界面页面的用户界面元素、用户界面元素之间的间隔、用户界面页面边框、用户界面页面背景图、用户界面页面背景图的位置中的一者或多者。目标尺寸单位包括磅、像素、设备独立像素、可伸缩像素、英寸、毫米中的任一者。屏幕尺寸单位包括磅、像素、设备独立像素、可伸缩像素、英寸、毫米中的任一者。
本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。本申请实施例提供的显示对象的屏幕适配装置与上述实施例提供的显示对象的屏幕适配方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
基于同一申请构思,本申请实施例还提供了一种电子设备,具体地,参照图3,电子设备100可包括处理器101、存储器102和总线,处理器101与存储器102之间通过总线通信,存储器102存储有处理器101可执行的计算机程序,处理器101执行计算机程序时实现如上所述的显示对象的屏幕适配方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
具体地,上述处理器101和存储器102能够为通用的处理器和存储器,这里不做具体限定,当处理器101运行存储器102存储的计算机程序时,能够执行上述显示对象的屏幕适配方法。
对应于上述显示对象的屏幕适配方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在被处理器调用和运行时,所述计算机程序促使所述处理器运行上述显示对象的屏幕适配方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (14)
1.一种显示对象的屏幕适配方法,其特征在于,所述屏幕适配方法包括:
确定待显示的显示对象的目标尺寸单位和屏幕的屏幕尺寸单位;
基于所述目标尺寸单位和所述屏幕尺寸单位,确定所述目标尺寸单位和所述屏幕尺寸单位之间的单位适配关系;
根据所述单位适配关系,确定满足所述单位适配关系的显示适配量;
基于所述显示适配量,在所述屏幕上适配显示所述显示对象。
2.根据权利要求1所述的屏幕适配方法,其特征在于,通过以下方式确定显示对象的目标尺寸单位:
获取所述显示对象的布局文件;
从所述布局文件中提取所述目标尺寸单位。
3.根据权利要求2所述的屏幕适配方法,其特征在于,通过以下方式生成所述布局文件:
获取显示对象的对象尺寸参数和原始尺寸单位;
用所述目标尺寸单位替换所述原始尺寸单位,获得所述显示对象的由所述对象尺寸参数和所述目标尺寸单位构成的布局尺寸;
基于所述布局尺寸,生成所述显示对象的布局文件。
4.根据权利要求3所述的屏幕适配方法,其特征在于,所述对象尺寸参数包括第一维度尺寸参数和第二维度尺寸参数;所述布局尺寸包括第一维度布局尺寸和第二维度布局尺寸,
用所述目标尺寸单位替换所述原始尺寸单位,获得所述显示对象的由所述对象尺寸参数和所述目标尺寸单位构成的布局尺寸,包括:
用所述目标尺寸单位替换所述第一维度尺寸参数的原始尺寸单位,获得由所述第一维度尺寸参数和所述目标尺寸单位构成的所述第一维度布局尺寸;
基于所述目标尺寸单位和所述原始尺寸单位,对所述显示对象的第二维度尺寸参数执行滚动布局包裹,获得所述显示对象的所述第二维度布局尺寸。
5.根据权利要求1所述的屏幕适配方法,其特征在于,基于所述目标尺寸单位和所述屏幕尺寸单位,确定所述目标尺寸单位和所述屏幕尺寸单位之间的单位适配关系,包括:
基于所述目标尺寸单位和所述屏幕尺寸单位,确定运行环境的标准单位转换条件中的与所述目标尺寸单位和所述屏幕尺寸单位相关联的适配标准单位转换条件;
基于所述适配标准单位转换条件,确定所述单位适配关系。
6.根据权利要求1所述的屏幕适配方法,其特征在于,根据所述单位适配关系,确定满足所述单位适配关系的显示适配量,包括:
获取所述显示对象的对象尺寸参数和所述屏幕的屏幕尺寸参数;
将所述对象尺寸参数和所述屏幕尺寸参数应用到所述单位适配关系,求解满足所述单位适配关系的所述显示适配量。
7.根据权利要求1所述的屏幕适配方法,其特征在于,基于所述显示适配量,在所述屏幕上适配显示所述显示对象,包括:
用所述显示适配量,替换运行环境中的与所述显示适配量对应的适配显示系数;
基于替换后的适配显示系数和所述显示对象的布局文件,在所述屏幕上适配显示所述显示对象。
8.根据权利要求7所述的屏幕适配方法,其特征在于,所述适配显示系数包括应用层面显示系数或页面层面显示系数,所述应用层面显示系数用于应用中所有页面的显示,所述页面层面显示系数用于当前页面的显示。
9.根据权利要求1所述的屏幕适配方法,其特征在于,确定待显示的显示对象的目标尺寸单位和屏幕的屏幕尺寸单位,包括:
监听显示对象的动作,并在监听到所述显示对象执行新动作的情况下,识别所述显示对象是否具有适配接口;
在识别到所述显示对象具有适配接口的情况下,确定待显示的显示对象的目标尺寸单位和屏幕的屏幕尺寸单位。
10.根据权利要求9所述的屏幕适配方法,其特征在于,所述适配接口预定义有所述显示对象的适配基准以及所述显示对象的与所述适配基准对应的对象尺寸参数;所述适配基准包括以所述显示对象的第一维度尺寸为基准或以所述显示对象的第二维度尺寸为基准,所述第一维度尺寸和所述第二维度尺寸为所述显示对象的在不同方向上的尺寸。
11.根据权利要求1至10中的任一项所述的屏幕适配方法,其特征在于,所述显示对象包括用于生成用户界面页面的用户界面元素、用户界面元素之间的间隔、用户界面页面边框、用户界面页面背景图、用户界面页面背景图的位置中的一者或多者;
所述目标尺寸单位包括磅、像素、设备独立像素、可伸缩像素、英寸、毫米中的任一者;
所述屏幕尺寸单位包括磅、像素、设备独立像素、可伸缩像素、英寸、毫米中的任一者。
12.一种显示对象的屏幕适配装置,其特征在于,所述屏幕适配装置包括:
单位确定单元,确定显示对象的目标尺寸单位和屏幕的屏幕尺寸单位;
适配关系确定单元,基于所述目标尺寸单位和所述屏幕尺寸单位,确定所述目标尺寸单位和所述屏幕尺寸单位之间的单位适配关系;
适配量确定单元,根据所述单位适配关系,确定满足所述单位适配关系的显示适配量;
适配显示单元,基于所述显示适配量,在所述屏幕上适配显示所述显示对象。
13.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,
所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至11中的任一项所述的屏幕适配方法的步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至11中的任一项所述的屏幕适配方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110751438.3A CN113467738A (zh) | 2021-07-02 | 2021-07-02 | 显示对象的屏幕适配方法及装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110751438.3A CN113467738A (zh) | 2021-07-02 | 2021-07-02 | 显示对象的屏幕适配方法及装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113467738A true CN113467738A (zh) | 2021-10-01 |
Family
ID=77877625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110751438.3A Pending CN113467738A (zh) | 2021-07-02 | 2021-07-02 | 显示对象的屏幕适配方法及装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113467738A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113900763A (zh) * | 2021-11-23 | 2022-01-07 | 四川长虹电器股份有限公司 | 智能电视上瀑布流应用横竖屏界面适配的方法 |
CN114489909A (zh) * | 2022-02-07 | 2022-05-13 | 智道网联科技(北京)有限公司 | 车载应用的屏幕适配方法、装置及电子设备、存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008261946A (ja) * | 2007-04-10 | 2008-10-30 | Sharp Corp | 表示制御装置および方法 |
CN112596842A (zh) * | 2020-12-26 | 2021-04-02 | 中国农业银行股份有限公司 | 一种针对安卓系统sdk开发的屏幕适配方法及相关装置 |
CN112800373A (zh) * | 2021-02-23 | 2021-05-14 | 广州虎牙科技有限公司 | 网页资源数据生成方法、装置、计算机设备及存储介质 |
-
2021
- 2021-07-02 CN CN202110751438.3A patent/CN113467738A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008261946A (ja) * | 2007-04-10 | 2008-10-30 | Sharp Corp | 表示制御装置および方法 |
CN112596842A (zh) * | 2020-12-26 | 2021-04-02 | 中国农业银行股份有限公司 | 一种针对安卓系统sdk开发的屏幕适配方法及相关装置 |
CN112800373A (zh) * | 2021-02-23 | 2021-05-14 | 广州虎牙科技有限公司 | 网页资源数据生成方法、装置、计算机设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113900763A (zh) * | 2021-11-23 | 2022-01-07 | 四川长虹电器股份有限公司 | 智能电视上瀑布流应用横竖屏界面适配的方法 |
CN114489909A (zh) * | 2022-02-07 | 2022-05-13 | 智道网联科技(北京)有限公司 | 车载应用的屏幕适配方法、装置及电子设备、存储介质 |
CN114489909B (zh) * | 2022-02-07 | 2023-09-08 | 智道网联科技(北京)有限公司 | 车载应用的屏幕适配方法、装置及电子设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10540744B2 (en) | Flexible control in resizing of visual displays | |
KR101494844B1 (ko) | 메타 데이터를 이용한 차트 변환 시스템 및 그 방법 | |
CN103823620B (zh) | 一种屏幕适配的方法和装置 | |
US9773072B2 (en) | Systems and methods for developing adaptive layouts for electronic content | |
CN113467738A (zh) | 显示对象的屏幕适配方法及装置、电子设备和存储介质 | |
KR20150079867A (ko) | Html5-프로토콜 기반 웹페이지 표시 방법 및 장치 | |
US9141596B2 (en) | System and method for processing markup language templates from partial input data | |
US11501313B2 (en) | System and method for displaying data from a storage | |
CN103955367A (zh) | 一种生成页面的方法及装置 | |
US20190325562A1 (en) | Window rendering method and terminal | |
CN113486280B (zh) | 页面渲染显示方法、装置、设备、存储介质和程序产品 | |
CN111459501A (zh) | 基于SVG的Web组态画面存储与展示系统和方法及介质 | |
KR20160113135A (ko) | 웹 기반 애플리케이션에서 편집하기 위한 문서의 인쇄 뷰를 제공하는 기법 | |
CN106020752A (zh) | 自适应显示方法及系统 | |
CN114647409A (zh) | 大屏可视化应用创建平台、方法、计算设备和存储介质 | |
JP5612556B2 (ja) | オブジェクトの周囲にテキストをレイアウトする際のパスフィルアルゴリズムの適用 | |
CN117055987A (zh) | 网页显示方法、装置、电子设备及计算机可读存储介质 | |
CN107977923B (zh) | 图像处理方法、装置、电子设备及计算机可读存储介质 | |
CN109656556B (zh) | 一种自适应页面的生成方法及装置 | |
US20140354627A1 (en) | Rendering a 3d shape | |
CN118466807B (zh) | 基于jQuery全屏轮播图控制方法及装置 | |
CN114896531B (zh) | 图像处理的方法、装置、电子设备及存储介质 | |
CN118192947B (zh) | 一种冶金运维系统数字孪生体的可视化页面的构建方法 | |
US11727033B1 (en) | System and method for updating CRM data | |
CN108182199B (zh) | 一种电力交易数据图形生成的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |