CN110083415A - 设备屏幕适配方法、终端设备、及存储介质 - Google Patents
设备屏幕适配方法、终端设备、及存储介质 Download PDFInfo
- Publication number
- CN110083415A CN110083415A CN201910227512.4A CN201910227512A CN110083415A CN 110083415 A CN110083415 A CN 110083415A CN 201910227512 A CN201910227512 A CN 201910227512A CN 110083415 A CN110083415 A CN 110083415A
- Authority
- CN
- China
- Prior art keywords
- layout file
- initial layout
- control
- pixel
- horizontal
- 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
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000006978 adaptation Effects 0.000 title claims abstract description 26
- 238000006243 chemical reaction Methods 0.000 claims description 117
- 238000004590 computer program Methods 0.000 claims description 6
- 230000009466 transformation Effects 0.000 claims description 3
- 230000007704 transition Effects 0.000 claims description 3
- 238000013461 design Methods 0.000 abstract description 3
- 230000000694 effects Effects 0.000 description 34
- 230000006870 function Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 3
- 230000009545 invasion Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明实施例涉及显示技术领域,公开了一种设备屏幕适配方法、终端设备及存储介质。设备屏幕适配方法,包括:获取初始布局文件;若待适配设备的分辨率不符合预设分辨率规范,或像素密度不符合预设像素规范,则根据所述待适配设备的分辨率,和所述初始布局文件对应的像素密度,计算像素和设备无关像素的第一转换关系;根据所述第一转换关系,对所述初始布局文件进行解析;加载解析后的所述初始布局文件至所述待适配设备。采用本发明的实施方式,使得不同规格的设备屏幕能够自动适配显示同一份初始布局文件,以极大减轻设计布局文件时的工作量。
Description
技术领域
本发明实施例涉及显示技术领域,特别涉及设备屏幕适配方法、终端设备及存储介质。
背景技术
如今由于安卓系统的源代码为开放源代码,因此各个设备厂商都可进行个性化的安卓系统编写和设备的生产,从而导致安卓设备的碎片化非常严重。面对市面上出现的品牌众多、版本各异、分辨率互不相同的安卓设备,开发应用程序时需要一一对它们进行屏幕适配,以在不同的安卓设备上均表现出良好的运行效果。
然而发明人发现相关技术中至少存在如下问题:目前解决屏幕适配问题的常用传统方案是,针对不同屏幕规格的设备,准备多份不同规格的布局文件,结合系统的资源文件限定符的功能,使得不同屏幕规格的设备自行寻找所适配的布局文件;然而这种方案只能针对市面上较为主流的设备屏幕规格来准备多份不同规格的布局文件,且维护的工作量非常大,成本太高。
发明内容
本发明实施方式的目的在于提供一种设备屏幕适配方法、终端设备及存储介质,使得不同规格的设备屏幕能够自动适配显示同一份初始布局文件,以极大减轻设计布局文件时的工作量。
为解决上述技术问题,本发明的实施方式提供了一种设备屏幕适配方法,包括以下步骤:获取初始布局文件;若待适配设备的分辨率不符合预设分辨率规范,或像素密度不符合预设像素规范,则根据所述待适配设备的分辨率,和所述初始布局文件对应的像素密度,计算像素和设备无关像素的第一转换关系;根据所述第一转换关系,对所述初始布局文件进行解析;加载解析后的所述初始布局文件至所述待适配设备。
本发明的实施方式还提供了一种终端设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述设备屏幕适配方法。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述设备屏幕适配方法。
本发明实施方式中,获取初始布局文件,若待适配设备的分辨率不符合预设分辨率规范,或像素密度不符合预设像素规范,则根据所述待适配设备的分辨率,和所述初始布局文件对应的像素密度,计算像素和设备无关像素的第一转换关系,来替换掉默认转换关系;根据重新计算的所述第一转换关系,对所述初始布局文件进行解析,并加载解析后的所述初始布局文件至所述待适配设备,从而使得解析后的初始布局文件能够在待适配设备上正常呈现布局效果,而无需针对待适配设备的屏幕规格重新设计布局文件,即可自动完成不同规格的待适配设备的屏幕适配,达到预期的显示效果,极大降低了设计布局文件的工作量和成本消耗,对于布局文件的侵入性低,在实施上局限性低,有效提高了屏幕适配的效率。
另外,根据所述待适配设备的分辨率,和所述初始布局文件对应的像素密度,计算像素和设备无关像素的第一转换关系,具体包括:根据所述初始布局文件对应的像素密度,计算像素和设备无关像素的默认转换关系;其中,所述默认转换关系为所述初始布局文件对应的像素密度和标准像素密度的比值;根据所述待适配设备的分辨率,和所述默认转换关系,计算所述第一转换关系。
另外,根据所述待适配设备的分辨率,和所述默认转换关系,计算所述第一转换关系,具体包括:获取所述初始布局中的任一控件的分辨率;根据所述控件的分辨率和所述默认转换关系,计算所述控件的水平转换尺寸或垂直转换尺寸;其中,所述水平转换尺寸为所述控件的水平设备无关像素和所述控件相对于所述初始布局文件的水平比例的比值;所述垂直转换尺寸为所述控件的垂直设备无关像素和所述控件相对于所述初始布局文件的垂直比例的比值;当计算所述控件的水平转换尺寸时,将所述待适配设备的水平像素和所述水平转换尺寸的比值,作为所述第一转换关系;当计算所述控件的垂直转换尺寸时,将所述待适配设备的垂直像素和所述垂直转换尺寸的比值,作为所述第一转换关系。本实施方式提供了一种通过初始布局中任一控件的分辨率来计算第一转换关系的方式,通过使得任一控件在初始布局中的显示比例和在待适配设备中的显示比例相同,来计算转换初始布局文件的第一转换关系,从而使得转换后的初始布局文件能够适配于待适配设备的屏幕,达到预期的显示效果。
另外,控件的水平设备无关像素,通过以下方式计算得到:将所述控件的水平像素和所述默认转换关系的比值,作为所述控件的水平设备无关像素;所述控件的垂直设备无关像素,通过以下方式计算得到:将所述控件的垂直像素和所述默认转换关系的比值,作为所述控件的垂直设备无关像素,提供了一种简单易行的计算控件的设备无关像素的方式。
另外,控件相对于所述初始布局文件的水平比例,通过以下方式计算得到:根据所述控件的水平像素,和所述初始布局文件的水平像素,计算所述控件相对于所述初始布局文件的水平比例;所述控件相对于所述初始布局文件的垂直比例,通过以下方式计算得到:根据所述控件的垂直像素,和所述初始布局文件的垂直像素,计算所述控件相对于所述初始布局文件的垂直比例,提供了一种计算控件相对于初始布局文件的比例的方式,以表示控件在初始布局文件上的显示效果。
另外,加载解析后的所述初始布局文件至所述待适配设备,具体包括:若解析后的所述初始布局文件的宽高比与所述待适配设备的宽高比不同,则在加载解析后的所述初始布局文件至所述待适配设备时,将解析后的所述初始布局文件更改为可滑动的解析后的初始布局文件,使得宽高比不同于待适配设备的解析后的初始布局文件能够在待适配设备上完全显示,而无需修改初始布局文件本身的比例和代码,不影响初始布局文件显示页面的美观度,避免增加代码复杂度和因此造成的性能降低。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明第一实施方式的设备屏幕适配方法的流程图;
图2是根据本发明第二实施方式的设备屏幕适配方法的流程图;
图3是根据本发明第三实施方式的设备屏幕适配方法的流程图;
图4是根据本发明第四实施方式的终端设备的结构方框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
本发明的第一实施方式涉及一种设备屏幕适配方法,具体流程如图1所示:
步骤101,获取初始布局文件。
步骤102,判断待适配设备的分辨率或像素密度是否符合预设规范;若是,执行步骤103,若否,执行步骤106。
步骤103,计算像素和设备无关像素的第一转换关系。
步骤104,根据第一转换关系对初始布局文件进行解析。
步骤105,加载解析后的初始布局文件至待适配设备。
步骤106,加载初始布局文件至待适配设备。
本实施方式中,获取初始布局文件;若待适配设备的分辨率不符合预设分辨率规范,或像素密度不符合预设像素规范,则根据所述待适配设备的分辨率,和所述初始布局文件对应的像素密度,计算像素和设备无关像素的第一转换关系,来替换掉默认转换关系;根据重新计算的所述第一转换关系,对所述初始布局文件进行解析,并加载解析后的所述初始布局文件至所述待适配设备,从而使得解析后的初始布局文件能够在待适配设备上正常呈现布局效果,而无需针对待适配设备的屏幕规格重新设计布局文件,即可自动完成不同规格的待适配设备的屏幕适配,达到预期的显示效果,极大降低了设计布局文件的工作量和成本消耗,对于布局文件的侵入性低,在实施上局限性低,有效提高了屏幕适配的效率。
下面对本实施方式的设备屏幕适配方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
在步骤101中,获取初始布局文件,初始布局文件为安卓系统中定义应用程序页面的配置文件,开发者通过涉及初始布局文件来配置页面中各个控件的显示效果。在获取到初始布局文件时,包括获取初始布局文件对应的像素密度和分辨率。初始布局文件对应的像素密度(dpi)指软件概念上每英寸的像素点数;初始布局文件的分辨率包括水平像素和垂直像素,一般用“水平像素×垂直像素”的形式表示。
在步骤102中,判断待适配设备的分辨率是否符合预设分辨率规范,或像素密度是否符合预设像素密度规范;若分辨率或像素密度中的任一项不符合各自对应的预设规范,则进入步骤103;若分辨率和像素密度均符合各自对应的预设规范,则进入步骤106。本实施方式中的预设分辨率规范和预设像素密度规范,具体为安卓官方规定的通用分辨率规范和像素密度规范;由于初始布局文件是根据官方规定的通用规范进行设计的,因此当待适配设备的分辨率或像素密度各自符合上述通用规范时,可将初始布局文件直接加载至待适配设备,初始布局文件和规范的待适配设备会根据默认的转换关系自动完成适配;当待适配设备的分辨率或像素密度不符合上述通用规范时,需要替换掉默认的转换关系重新对初始布局文件进行解析,使得正确解析后的初始布局文件在不规范的待适配设备上也能正常显示。本实施方式中采用的预设分辨率规范和预设像素密度规范,例如表1所示:
表1
需要说明的是,表1仅为举例说明,预设分辨率规范和预设像素密度规范,并不存在严格的对应关系,即分别对待适配设备的分辨率或像素密度是否符合预设规范进行判断。
在步骤103中,计算像素和设备无关像素的第一转换关系,其中,像素(px)是编写布局文件时使用的一种单位,常用于设计布局文件时表示各个控件的实际分辨率大小。设备无关像素(dp)是一种虚拟像素单位,在布局文件运行于安卓系统中时,安卓系统会将布局文件的物理像素(px)转换为设备无关像素(dp)来表示各个控件的大小,并根据设备屏幕的像素密度,对设备无关像素进行缩放处理,以保证在具有不同像素密度的设备屏幕上得到相同的布局文件的显示效果。传统的设备屏幕适配方法中,像素和设备无关像素根据默认转换关系进行转换;默认转换关系,表示一个设备无关像素(1dp)在设备屏幕上对应的像素(px),为初始布局文件对应的像素密度和标准像素密度(160dpi)的比值,即1dp=(初始布局文件对应的像素密度/标准像素密度)px。
在本实施方式中,由于待适配设备的分辨率或像素密度不符合预设规范,因此不采用默认转换关系对像素进行转换,而是根据待适配设备的分辨率,和初始布局文件对应的像素密度,计算像素和设备无关像素的第一转换关系,使得像素转换后的设备无关像素能够适配于待适配设备的规格,能够达到预期的显示效果。例如,由于默认转换关系为初始布局文件对应的像素密度和标准像素密度的比值,因此在默认转换关系的基础上,根据待适配设备的分辨率和初始布局文件的分辨率的比例,得到第一转换关系;以分辨率的水平像素为例,使(第一转换关系)=(待适配设备的水平像素/初始布局文件的水平像素)×(默认转换关系)。
在一个实例中,获取到初始布局文件的分辨率为720px×1280px,像素密度为320dpi,计算得到针对初始布局文件的默认转换关系为:
1dp=(320dpi/160dpi)px=2px
同时,获取到待适配设备的分辨率为728px×960px,计算得到针对待适配设备的第一转换关系为:
1dp=(728px/720px)×2px≈2.02px。
为了评估转换后的初始布局文件在待适配设备上的显示效果,本实例中取初始布局文件中的任一控件为例,控件的分辨率为360px×360px,计算得到控件在初始布局文件中显示的宽度占初始布局文件宽度的比例为:
(360px/720px=0.5)
若根据默认转换关系,则计算得到控件的水平设备无关像素为:
(360px/2=180dp)
计算得到控件在待适配设备上的水平像素为:
(180dp×2=360px),
计算得到控件在待适配设备中显示的宽度占待适配设备宽度的比例为:
(360px/728px=0.49)
可知,控件在待适配设备中显示的宽度占待适配设备宽度的比例(0.49)不等于控件在初始布局文件中显示的宽度占初始布局文件宽度的比例(0.5)。
若根据第一转换关系,则计算得到控件在待适配设备上的水平像素约为:
(180dp×2.02=363.6px)
计算得到控件在待适配设备中显示的宽度占待适配设备宽度的比例为:
(363.6px/728px)=(180dp×728x)/(728px×720px)=0.5,等于控件在初始布局文件中显示的宽度的比例,即说明转换后的控件在待适配设备上的显示效果与在初始布局文件中的显示效果相同。因此,在步骤104中,根据计算的像素和设备无关像素的第一转换关系,对初始布局文件进行解析,可令正确解析后的初始布局文件在待适配设备上的显示效果与初始布局文件的显示效果相同。
在步骤105中,加载解析后的初始布局文件至待适配设备。系统中页面的显示,首先需要系统创建一个空白视图窗口,其次为该空白视图窗口设置布局文件,最后将设置的布局文件加载至该空白视图窗口。因此将解析后的初始布局文件加载至待适配设备,使得待适配设备上显示出效果正常的页面。
需要说明的是,在实际应用中,计算第一转换关系时所需要的待适配设备的各项参数,可通过Activity对象或Application对象,使用DisplayMetrics类来读取。在启动需要适配于设备屏幕的安卓应用程序后,会根据应用程序的初始布局文件,显示第一个页面,因此需要在设置初始布局文件之前,执行上述步骤103至104;具体的执行时机可根据用户需求进行选择,以下是三种可供参考的执行时机:执行在Application对象的onCreate方法生命周期内;执行在首个Activity类的onCreate方法生命周期内;在AndroidManifes文件中声明一个ContentProvider类,执行在ContentProvider类的onCreate方法生命周期内。
作为一种具体实现,可将上述步骤103至104封装为框架,将框架接入应用程序,通过框架来自动执行上述步骤103至104,从而使得对初始布局文件的代码侵入性较小,且开发成本及维护成本较低。
作为一种具体实现,考虑到应用程序中可能存在多份规格不同的初始布局文件的情况,可在封装框架时,在框架内设计一开关功能,用于启动本实施方式中的设备屏幕适配方法。当需要显示的页面涉及多份规格不同的初始布局文件时,可通过该开关功能,不启动本实施方式中的设备屏幕适配方法,而是令需要显示的页面使用传统的设备屏幕适配方法;或是启动本实施方式中的设备屏幕适配方法。采用这种方式以适应不同情况下显示页面的需求,且在技术上易于实现。
在步骤106中,若待适配设备的分辨率和像素密度均符合各自对应的预设规范,则将根据预设规范设计的初始布局文件加载至待适配设备,在加载过程中,待适配设备的规格和初始布局文件会自动适配,即可实现初始布局文件在待适配设备上的正常显示。
本实施方式相对于现有技术而言,若待适配设备的分辨率不符合预设分辨率规范,或像素密度不符合预设像素规范,则根据所述待适配设备的分辨率,和所述初始布局文件对应的像素密度,计算像素和设备无关像素的第一转换关系,来替换掉默认转换关系,并根据所述第一转换关系,对所述初始布局文件进行解析,并加载解析后的所述初始布局文件至所述待适配设备,从而使得解析后的初始布局文件能够在待适配设备上正常呈现布局效果,而无需针对待适配设备的屏幕规格重新设计布局文件,即可自动完成不同规格的待适配设备的屏幕适配,达到预期的显示效果,极大降低了设计布局文件的工作量和成本消耗,对于布局文件的侵入性低,在实施上局限性低,有效提高了屏幕适配的效率。在实际应用中,还可结合传统的设备屏幕适配方法进行实施,可实用性高,在技术上易于实现。
本发明的第二实施方式涉及一种设备屏幕适配方法,本实施方式与第一实施方式大致相同,在本发明第二实施方式中,通过初始布局中任一控件的分辨率,计算像素和设备无关像素的第一转换关系。本实施方式中的设备屏幕适配方法如图2所示,下面对图2的流程做具体说明:
步骤201,获取初始布局文件。此步骤与步骤101大致相同,此处不再赘述。
步骤202,判断待适配设备的分辨率或像素密度是否符合预设规范;若是,执行步骤203,若否,执行步骤206。此步骤与步骤102大致相同,此处不再赘述。
步骤203,获取初始布局中任一控件的分辨率,计算控件的转换尺寸。
步骤204,根据待适配设备的像素和控件的转换尺寸,计算像素和设备无关像素的第一转换关系。
具体地说,由于第一转换关系,仍是表示一个设备无关像素在设备屏幕上对应的像素,根据第一转换关系得到的设备无关像素,在待适配设备上显示出的效果应和初始布局文件中像素的显示效果相同,也就是说,初始布局文件中的任一控件,在根据第一转换关系转换后,在待适配设备上显示的效果,应和在初始布局文件中显示的效果相同。因此,本实施方式中,根据初始布局中任一控件的分辨率,来计算像素和设备无关像素的第一转换关系。下面以反推的方式,说明第一转换关系的计算方式:
获取到初始布局文件的分辨率和像素密度,计算得到初始布局文件的默认转换关系为:
1(设备无关像素)=(初始布局文件对应的像素密度/标准像素密度)(像素),即:
1dp=(初始布局文件对应的像素密度/标准像素密度)px
获取到初始布局文件中任一控件的分辨率,此处以控件的水平像素为例,计算得到控件的水平像素占初始布局文件的水平像素的比例,为控件的水平像素和初始布局文件的水平像素的比值,即:
(控件相对于初始布局文件的水平比例)=(控件的水平像素/初始布局文件的水平像素)
根据默认转换关系,计算得到控件的水平设备无关像素,为控件的水平像素和默认转换关系的比值,即:
(控件的水平设备无关像素)=(控件的水平像素/默认转换关系)
同时,获取到待适配设备的分辨率和像素密度;由于控件在待适配设备上显示的效果,应和在初始布局文件中显示的效果相同,因此:
(控件相对于待适配设备的水平比例)=(控件相对于初始布局文件的水平比例),即:
(控件在待适配设备上的水平像素/待适配设备的水平像素)
=(控件相对于初始布局文件的水平比例)
又因为,控件在待适配设备上的水平像素,根据第一转换关系得到,即:
(控件在待适配设备上的水平像素)=(控件的水平设备无关像素×第一转换关系)
因此得到,
(控件的水平设备无关像素×第一转换关系/待适配设备的水平像素)=(控件相对于初始布局文件的水平比例),即:
(第一转换关系)
=(控件相对于初始布局文件的水平比例×待适配设备的水平像素/控件的水平设备无关像素)
=(待适配设备的水平像素)/(控件的水平设备无关像素/控件相对于初始布局文件的水平比例)
本实施方式中,(控件的水平设备无关像素/控件相对于初始布局文件的水平比例)表示控件的水平转换尺寸,即:
(第一转换关系)=(待适配设备的水平像素)/(控件的水平转换尺寸)。
同样,当以控件的垂直像素为例时,将待适配设备的垂直像素和控件的垂直转换尺寸的比值,作为第一转换关系,即:
(第一转换关系)=(待适配设备的垂直像素)/(控件的垂直转换尺寸)
其中,将控件的垂直设备无关像素和控件相对于初始布局文件的垂直比例的比值,作为控件的垂直转换尺寸,即:
(控件的垂直转换尺寸)=(控件的垂直设备无关像素/控件相对于初始布局文件的垂直比例)
将控件的垂直像素和默认转换关系的比值,作为控件的垂直设备无关像素,即:
(控件的垂直设备无关像素)=(控件的垂直像素/默认转换关系)
将控件的垂直像素和初始布局文件的垂直像素的比值,作为控件相对于初始布局文件的垂直比例,即:
(控件相对于初始布局文件的垂直比例)=(控件的垂直像素/初始布局文件的垂直像素)。
下面以一实例作具体说明第一转换关系的计算方式:
获取到初始布局文件的分辨率为720px×1080px,像素密度为320dpi,计算得到针对初始布局文件的默认转换关系为:
1dp=(320dpi/160dpi)px=2px
获取到初始布局文件中任一控件的分辨率为180px×180px,计算得到控件相对于初始布局文件的水平比例为:
(180px/720px=0.25)
并根据默认转换关系,计算得到控件的水平设备无关像素为:
(180px/2=90dp)
同时,获取到待适配设备的分辨率为728px×960px,像素密度为240dpi;由于:
(90dp×第一转换关系/728px=0.25),因此计算得到:
(第一转换关系)=(0.25x728px/90dp)≈2.02,即1dp≈2.02px。
步骤205,根据第一转换关系对初始布局文件进行解析。此步骤与步骤104大致相同,此处不再赘述。下面以一实例作具体说明,解析后的初始布局文件在待适配设备上的显示效果与初始布局文件的显示效果相同:
获取到初始布局文件的分辨率为720px×1080px,像素密度为320dpi,计算得到针对初始布局文件的默认转换关系为:
1dp=(320dpi/160dpi)px=2px
获取到初始布局文件中任一控件的分辨率为360px×360px,计算得到控件相对于初始布局文件的水平比例为:
(360px/720px=0.5)
根据默认转换关系,计算得到控件的水平设备无关像素为:
(360px/2=180dp)
计算得到控件的水平转换尺寸为:
(180dp/0.5=360dp)
同时,获取到待适配设备的分辨率为728px×960px,计算得到第一转换关系为:
(728px/360dp≈2.02),即1dp≈2.02px
根据第一转换关系,计算得到控件在待适配设备上的水平像素约为:
(180dp×2.02=363.6px)
计算得到控件相对于待适配设备的水平比例为:
(363.6px/728px)=(180dp×728x)/(728px×720px)=0.5
可知,控件相对于待适配设备的水平比例(0.5)等于控件相对于初始布局文件的水平比例(0.5),说明解析后的控件在待适配设备上的显示效果与在初始布局文件中的显示效果相同,即解析后的初始布局文件在待适配设备上的显示效果与初始布局文件的显示效果相同。
步骤206,加载解析后的初始布局文件至待适配设备。此步骤与步骤105大致相同,此处不再赘述。
步骤207,加载初始布局文件至待适配设备。此步骤与步骤106大致相同,此处不再赘述。
本实施方式相对于现有技术而言,通过待适配设备的分辨率,和初始布局中任一控件的分辨率,来计算出像素和设备无关像素的第一转换关系,使得控件在初始布局文件中的显示效果和在待适配设备上的显示效果相同,从而无需重新设计布局文件即可实现待适配设备的屏幕适配,极大降低了设计布局文件的工作量和成本消耗,对于布局文件的侵入性低,在实施上局限性低,有效提高了屏幕适配的效率。
本发明的第三实施方式涉及一种设备屏幕适配方法,本实施方式与第二实施方式大致相同,在本发明第三实施方式中,对解析后的布局文件的宽高比是否相同于待适配设备的宽高比进行了判断,并在解析后的初始布局文件的宽高比不同于待适配设备的宽高比时进行处理,使得解析后的初始布局文件能够正常在待适配设备上显示。本实施方式中的设备屏幕适配方法如图3所示,下面对图3的流程做具体说明:
步骤301,获取初始布局文件。此步骤与步骤201大致相同,此处不再赘述。
步骤302,判断待适配设备的分辨率或像素密度是否符合预设规范;若是,执行步骤303,若否,执行步骤309。此步骤与步骤302大致相同,此处不再赘述。
步骤303,获取初始布局中任一控件的分辨率,计算控件的转换尺寸。此步骤与步骤203大致相同,此处不再赘述。
步骤304,根据待适配设备的像素和控件的转换尺寸,计算像素和设备无关像素的第一转换关系。此步骤与步骤204大致相同,此处不再赘述。
步骤305,根据第一转换关系对初始布局文件进行解析。此步骤与步骤205大致相同,此处不再赘述。
步骤306,判断解析后的初始布局文件的宽高比和待适配设备的宽高比是否相同;若是,执行步骤307,若否,执行步骤308。
具体地说,根据第二实施方式中的实例,初始布局文件的分辨率为720px×1080px,像素密度为320dpi,默认转换关系为1dp=2px;
另获取初始布局文件中的一个全屏控件,分辨率为720px×1080px,计算出全屏控件的设备无关分辨率为:
(720/2)px×(1080/2)px,即360dp×540dp
同时,获取到待适配设备的分辨率为728px×960px,计算得到第一转换关系:
1dp≈2.02px
则解析后的初始布局文件中,该全屏控件在待适配设备上的分辨率为:
(360dp×2.02)px×(540dp×2.02)px,即728px×1092px
对比于待适配设备的分辨率728px×960px可知,该全屏控件的水平像素(728px)充满了待适配设备的全屏水平像素(728px),但该全屏控件的垂直像素(1092px)超出了待适配设备的全屏垂直像素(960px),也就是说,解析后的初始布局文件的宽高比与待适配设备的宽高比不一致,导致解析后的初始布局文件中的全屏控件无法在待适配设备的屏幕上完全显示,即解析后的布局文件无法在待适配设备的屏幕上完全显示。因此,针对这一本质上是由于解析后的初始布局文件的宽高比与待适配设备的宽高比不一致,而导致无法完全显示的问题,需要执行步骤308;若是解析后的初始布局文件的宽高比与待适配设备的宽高比一致,则解析后的初始布局文件能正常完全显示,则执行步骤307,直接加载解析后的布局文件至待适配设备。
步骤307,加载解析后的初始布局文件至待适配设备。此步骤与步骤206大致相同,此处不再赘述。
步骤308,在加载解析后的初始布局文件至待适配设备时,将解析后的初始布局文件更改为可滑动的解析后的初始布局文件。
具体地说,为了使解析后的初始布局文件能够在待适配设备上完全显示,而不改变解析后的初始布局文件本身的比例,需要使解析后的初始布局文件为可滑动的布局文件,以供用户能够通过在待适配设备屏幕上进行滑动操作,来正常浏览解析后的初始布局文件的完整页面。由于系统中页面的显示,首先需要系统创建一个空白视图窗口,其次为该空白视图窗口设置布局文件,最后将设置的布局文件加载至该空白视图窗口,因此本实施方式中,在将解析后的初始布局文件加载至视图窗口时,自动为解析后的初始布局文件嵌套一层滑动容器,从而令加载至待适配设备的解析后的初始布局文件更改为可滑动的解析后的初始布局文件。采用本实施方式,无需对解析后的初始布局文件本身的比例进行缩放,从而不影响显示页面的美观度;也无需对解析后的初始布局文件本身的代码进行修改,避免增加代码复杂度和因增加代码复杂度而造成的性能降低。
更优的,还可在将解析后的初始布局文件加载至视图窗口时,判断解析后的初始布局文件是否为支持滑动的布局文件,若不支持滑动,才为解析后的初始布局文件嵌套一层滑动容器。在实际应用中,可通过在解析后的初始布局文件的BaseActivity类中,重写Activity类的setContentView方法,来实现对解析后的初始布局文件加载至视图窗口的时机的监听。
步骤309,加载初始布局文件至待适配设备。此步骤与步骤207大致相同,此处不再赘述。
本实施方式相对于现有技术而言,在判断到解析后的初始布局文件的宽高比与待适配设备的宽高比不相同时,自动将解析后的初始布局文件更改为可滑动的解析后的初始布局文件,从而使得可滑动的解析后的初始布局文件能够在待适配设备上完全显示,而无需修改解析后的初始布局文件本身的比例和代码,不影响解析后的初始布局文件显示页面的美观度,避免增加代码复杂度和因此造成的性能降低。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第四实施方式涉及一种终端设备,如图4所示,包括:至少一个处理器401;以及,与至少一个处理器401通信连接的存储器402;其中,存储器402存储有可被至少一个处理器401执行的指令,指令被至少一个处理器401执行,以使至少一个处理器401能够执行上述设备屏幕适配方法。
其中,存储器402和处理器401采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器402的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器401处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器401。
处理器401负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器402可以被用于存储处理器401在执行操作时所使用的数据。
本发明第五实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述设备屏幕适配方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (9)
1.一种设备屏幕适配方法,其特征在于,包括:
获取初始布局文件;
若待适配设备的分辨率不符合预设分辨率规范,或像素密度不符合预设像素密度规范,则根据所述待适配设备的分辨率,和所述初始布局文件对应的像素密度,计算像素和设备无关像素的第一转换关系;
根据所述第一转换关系,对所述初始布局文件进行解析;
加载解析后的所述初始布局文件至所述待适配设备。
2.根据权利要求1所述的设备屏幕适配方法,其特征在于,所述根据所述待适配设备的分辨率,和所述初始布局文件对应的像素密度,计算像素和设备无关像素的第一转换关系,具体包括:
根据所述初始布局文件对应的像素密度,计算像素和设备无关像素的默认转换关系;其中,所述默认转换关系为所述初始布局文件对应的像素密度和标准像素密度的比值;
根据所述待适配设备的分辨率,和所述默认转换关系,计算所述第一转换关系。
3.根据权利要求2所述的设备屏幕适配方法,其特征在于,所述根据所述待适配设备的分辨率,和所述默认转换关系,计算所述第一转换关系,具体包括:
获取所述初始布局中的任一控件的分辨率;
根据所述控件的分辨率和所述默认转换关系,计算所述控件的水平转换尺寸或垂直转换尺寸;其中,所述水平转换尺寸为所述控件的水平设备无关像素和所述控件相对于所述初始布局文件的水平比例的比值;所述垂直转换尺寸为所述控件的垂直设备无关像素和所述控件相对于所述初始布局文件的垂直比例的比值;
当计算所述控件的水平转换尺寸时,将所述待适配设备的水平像素和所述水平转换尺寸的比值,作为所述第一转换关系;
当计算所述控件的垂直转换尺寸时,将所述待适配设备的垂直像素和所述垂直转换尺寸的比值,作为所述第一转换关系。
4.根据权利要求3所述的设备屏幕适配方法,其特征在于,所述控件的水平设备无关像素,通过以下方式计算得到:
将所述控件的水平像素和所述默认转换关系的比值,作为所述控件的水平设备无关像素;
所述控件的垂直设备无关像素,通过以下方式计算得到:
将所述控件的垂直像素和所述默认转换关系的比值,作为所述控件的垂直设备无关像素。
5.根据权利要求3所述的设备屏幕适配方法,其特征在于,所述控件相对于所述初始布局文件的水平比例,通过以下方式计算得到:
根据所述控件的水平像素,和所述初始布局文件的水平像素,计算所述控件相对于所述初始布局文件的水平比例;
所述控件相对于所述初始布局文件的垂直比例,通过以下方式计算得到:
根据所述控件的垂直像素,和所述初始布局文件的垂直像素,计算所述控件相对于所述初始布局文件的垂直比例。
6.根据权利要求1所述的设备屏幕适配方法,其特征在于,所述加载解析后的所述初始布局文件至所述待适配设备,具体包括:
若解析后的所述初始布局文件的宽高比与所述待适配设备的宽高比不同,则在加载解析后的所述初始布局文件至所述待适配设备时,将解析后的所述初始布局文件更改为可滑动的解析后的初始布局文件。
7.根据权利要求1所述的设备屏幕适配方法,其特征在于,还包括:
若所述初始布局文件对应的像素密度和所述待适配设备的像素密度相同,则加载所述初始布局文件至所述待适配设备。
8.一种终端设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任一项所述的设备屏幕适配方法。
9.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一所述的设备屏幕适配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910227512.4A CN110083415A (zh) | 2019-03-25 | 2019-03-25 | 设备屏幕适配方法、终端设备、及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910227512.4A CN110083415A (zh) | 2019-03-25 | 2019-03-25 | 设备屏幕适配方法、终端设备、及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110083415A true CN110083415A (zh) | 2019-08-02 |
Family
ID=67413537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910227512.4A Pending CN110083415A (zh) | 2019-03-25 | 2019-03-25 | 设备屏幕适配方法、终端设备、及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110083415A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990009A (zh) * | 2019-11-29 | 2020-04-10 | 湖南快乐阳光互动娱乐传媒有限公司 | Android-UI不同屏幕尺寸的适配方法及Android应用开发方法 |
CN111443974A (zh) * | 2020-03-26 | 2020-07-24 | 中国农业银行股份有限公司 | Android设备屏幕适配方法、相关设备及可读存储介质 |
CN111782168A (zh) * | 2020-07-22 | 2020-10-16 | 扬州航盛科技有限公司 | 一种智能车载终端多种屏幕适配方法 |
CN111986601A (zh) * | 2020-07-13 | 2020-11-24 | 视联动力信息技术股份有限公司 | 屏幕显示方法、装置、终端设备和存储介质 |
CN113051010A (zh) * | 2019-12-28 | 2021-06-29 | Oppo(重庆)智能科技有限公司 | 一种穿戴设备中应用画面调整方法及相关装置 |
WO2022063158A1 (zh) * | 2020-09-27 | 2022-03-31 | 上海连尚网络科技有限公司 | 局部适配屏幕方法和设备 |
WO2023065812A1 (zh) * | 2021-10-22 | 2023-04-27 | 华为技术有限公司 | 页面显示方法、电子设备及计算机可读存储介质 |
TWI841828B (zh) * | 2021-03-18 | 2024-05-11 | 新安東京海上產物保險股份有限公司 | 事故現場導引系統 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105282321A (zh) * | 2015-08-28 | 2016-01-27 | 上海健保科技有限公司 | 一种应用软件用户界面与显示设备的适配方法 |
CN105653254A (zh) * | 2014-12-03 | 2016-06-08 | 科大讯飞股份有限公司 | 原生界面适配方法、装置及应用其的电子设备 |
CN105760178A (zh) * | 2016-03-17 | 2016-07-13 | 网易(杭州)网络有限公司 | 对界面控件进行适配的方法及装置 |
-
2019
- 2019-03-25 CN CN201910227512.4A patent/CN110083415A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105653254A (zh) * | 2014-12-03 | 2016-06-08 | 科大讯飞股份有限公司 | 原生界面适配方法、装置及应用其的电子设备 |
CN105282321A (zh) * | 2015-08-28 | 2016-01-27 | 上海健保科技有限公司 | 一种应用软件用户界面与显示设备的适配方法 |
CN105760178A (zh) * | 2016-03-17 | 2016-07-13 | 网易(杭州)网络有限公司 | 对界面控件进行适配的方法及装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990009A (zh) * | 2019-11-29 | 2020-04-10 | 湖南快乐阳光互动娱乐传媒有限公司 | Android-UI不同屏幕尺寸的适配方法及Android应用开发方法 |
CN113051010A (zh) * | 2019-12-28 | 2021-06-29 | Oppo(重庆)智能科技有限公司 | 一种穿戴设备中应用画面调整方法及相关装置 |
CN111443974A (zh) * | 2020-03-26 | 2020-07-24 | 中国农业银行股份有限公司 | Android设备屏幕适配方法、相关设备及可读存储介质 |
CN111986601A (zh) * | 2020-07-13 | 2020-11-24 | 视联动力信息技术股份有限公司 | 屏幕显示方法、装置、终端设备和存储介质 |
CN111986601B (zh) * | 2020-07-13 | 2024-03-29 | 视联动力信息技术股份有限公司 | 屏幕显示方法、装置、终端设备和存储介质 |
CN111782168A (zh) * | 2020-07-22 | 2020-10-16 | 扬州航盛科技有限公司 | 一种智能车载终端多种屏幕适配方法 |
WO2022063158A1 (zh) * | 2020-09-27 | 2022-03-31 | 上海连尚网络科技有限公司 | 局部适配屏幕方法和设备 |
TWI841828B (zh) * | 2021-03-18 | 2024-05-11 | 新安東京海上產物保險股份有限公司 | 事故現場導引系統 |
WO2023065812A1 (zh) * | 2021-10-22 | 2023-04-27 | 华为技术有限公司 | 页面显示方法、电子设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110083415A (zh) | 设备屏幕适配方法、终端设备、及存储介质 | |
CN111984351B (zh) | 页面适配方法、电子设备、计算机可读存储介质 | |
US9558016B2 (en) | Platform system, method for changing support hardware configuration of universal extensible firmware interface basic input output system and computer program product | |
CN103870303A (zh) | 减小软件安装包大小的方法及装置 | |
CN107404669B (zh) | 电视系统界面显示方法、设备及计算机可读存储介质 | |
WO2019212907A1 (en) | Electronic display partial image frame update systems and methods | |
US7944421B2 (en) | Image display system, image display method, image display device, image data processor, program, storage medium, and image processing program distribution server | |
US20200249965A1 (en) | Display Device with Built-In Web Browser for Graphical User Interface in an Embedded System | |
US20100195139A1 (en) | Print rendering verification | |
US20120096104A1 (en) | Electronic device with customizable embedded software and methods therefor | |
US11030352B2 (en) | Clearance check method and clearance check device | |
CN112052000A (zh) | 组件复用、渲染方法及装置 | |
US9292069B1 (en) | System and method for controlling mode switches in hardware | |
CN112181500A (zh) | 一种参数调整方法、装置、终端和存储介质 | |
US7657897B2 (en) | Methods and apparatus for communicating between multiple levels of software components | |
US20200387801A1 (en) | Electronic apparatus and method of performing operations thereof | |
CN113535175A (zh) | 应用程序前端代码的生成方法、装置、电子设备及介质 | |
US20150317185A1 (en) | Method for switching operating system and electronic device using the method | |
CN110688037A (zh) | 一种控件的显示方法、存储介质及移动终端 | |
CN111683254B (zh) | 一种图像压缩方法、装置及电子设备和存储介质 | |
CN107704221A (zh) | 屏幕的圆角显示方法、移动终端及存储介质 | |
CN113253959B (zh) | 一种适配不同大屏分辨率的前端投屏方法 | |
CN113272785A (zh) | 一种挂载文件系统的方法、终端设备及存储介质 | |
CN110362526B (zh) | Spi从机设备、存储和适配方法及计算机存储介质 | |
CN109951860B (zh) | 一种获取wifi信息的方法、智能电视及存储介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190802 |