基于安卓操作系统的软件适应移动终端的方法及装置与流程

文档序号:11780198阅读:201来源:国知局
基于安卓操作系统的软件适应移动终端的方法及装置与流程
本发明涉及操作系统软件设计技术,尤其涉及一种基于安卓(Android)操作系统的软件适应移动终端的方法及装置。

背景技术:
随着3G技术的不断发展,无线宽带越来越快,使得更多内容丰富的软件(例如,应用程序)可以安装并布置在移动终端上。为了承载这些应用程序以及实现快速部署,使软件页面适应移动终端的属性,移动终端也需要变得越来越智能,越来越开放。Android操作系统由于具有良好的开放性和优异性,各移动终端厂商和移动运营商都基于Android操作系统研制了相应的移动终端。由于各移动终端厂商和移动运营商研制的移动终端的属性,例如,屏幕大小、分辨率以及屏幕密度千差万别,而移动终端的更新换代速度较快。因而,技术开发人员在研发一款软件时,需要针对各移动终端的属性,设置对应于移动终端属性的软件页面,以使开发的软件能够适应各移动终端的屏幕大小、分辨率以及屏幕密度,例如,使软件页面中的各组件在移动终端中的位置能够与移动终端屏幕大小相适应,软件页面的分辨率和页面密度分别与移动终端的分辨率和屏幕密度相适应。现有基于Android操作系统的软件适应移动终端的方法,主要采用在基于Android操作系统开发的软件中,根据软件包含的各页面中组件的布局,设置用于存放适应不同移动终端属性的资源文件夹,例如,设置包含各移动终端的屏幕大小、分辨率和屏幕密度的资源文件夹,即res文件夹。这样,在移动终端运行开发的软件时,通过获取移动终端属性(屏幕大小、分辨率和屏幕密度),从res文件夹中加载与移动终端的屏幕大小、分辨率和屏幕密度相匹配的文件,从而与移动终端属性相适应。具体来说,在res文件夹中分别设置布局文件夹(layout文件夹)以及图片文件夹(drawable文件夹)。其中,layout文件夹用于存放适应各移动终端屏幕大小的布局文件。例如,在基于Android操作系统开发软件时,针对各移动终端屏幕大小的不同,在 res文件夹中设置多个layout文件夹,每一layout文件夹对应一种移动终端屏幕大小,在该layout文件夹中,页面尺寸与移动终端屏幕大小相适应,并分别设置页面中各组件的布局,即页面中各组件在页面中的位置。这样,可以使开发的同一款软件在不同属性的移动终端上,从而呈现相同的页面效果。举例来说,针对分辨率为320*240的移动终端,设置layout-320*240文件夹,存放该分辨率的软件中各页面的布局文件,使得移动终端在启动软件时,自动加载layout-320*240文件夹中存储的软件中各页面的布局文件。drawable文件夹用于存放不同屏幕密度下的图片资源。例如,针对各移动终端的不同屏幕密度,在drawable文件夹中分别设置高密度(drawable-hdpi)图片文件夹、中密度(drawable-mdpi)图片文件夹、低密度(drawable-ldpi)图片文件夹等,从而针对不同屏幕密度,将不同屏幕密度对应的图片存放到相应的图片文件夹中,使得移动终端在启动软件时,自动加载移动终端屏幕密度对应的图片文件夹中存放的图片,以适应该移动终端屏幕密度的要求。由上述可见,现有基于Android操作系统的软件适应移动终端的方法,通过设置用于存放包含各移动终端的屏幕大小、分辨率和屏幕密度的资源文件夹,在移动终端启动软件时,自动加载与移动终端属性对应的资源文件夹中存放的资源,从而适应移动终端。这样,由于需要预先设置针对不同移动终端属性的资源文件夹,不仅耗费了大量时间和精力,也降低了软件开发效率;进一步地,预先设置的资源文件夹数量有限,因而,不能自适应不同的移动终端属性,易用性较低,甚至影响用户对软件的正常使用,使得用户体验较差,软件自适应效率较低;而且,当需要支持大量不同的移动终端属性时,软件中设置的资源文件夹的大小就会随之变大,需要更大的存储空间,增加了存储成本。

技术实现要素:
本发明的实施例提供一种基于Android操作系统的软件适应移动终端的方法,降低存储成本、提高软件开发效率。本发明的实施例还提供一种基于Android操作系统的软件适应移动终端的装置,降低存储成本、提高软件开发效率。为达到上述目的,本发明实施例提供的一种基于Android操作系统的软件适应移动终端的方法,该方法包括:根据预先设置的阈值等分预定移动终端屏幕尺寸,得到等分值,以等分值表示软件每一页面中包含的各组件在该预定移动终端屏幕的布局信息,分别得到每一页面对应的页面布局文件;启动软件,获取运行软件的移动终端属性信息;根据待展示的页面信息及移动终端属性信息,读取对应的页面布局文件,进行设置,生成待加载页面布局文件;加载生成的待加载页面布局文件。其中,所述根据预先设置的阈值等分预定移动终端屏幕尺寸,得到等分值,以等分值表示软件每一页面中包含的各组件在该预定移动终端屏幕的布局信息包括:获取预定移动终端屏幕尺寸信息;根据预先设置的阈值等分获取的移动终端屏幕尺寸,得到等分值;获取软件每一页面中包含的各组件以移动终端屏幕尺寸表示的布局信息;将获取的布局信息换算为以等分值倍数表示的等分布局信息。其中,所述等分布局信息以键值对的方式进行存储,所述键值对中,键为等分布局信息以及阈值,值设置为缺省。其中,所述获取运行软件的移动终端属性信息包括:通过软件Java代码层,启动页面对应的Activity获取运行软件的移动终端属性信息。其中,所述根据待展示的页面信息及移动终端属性信息,读取对应的页面布局文件,进行设置,生成待加载页面布局文件包括:获取待展示的页面信息;从预先设置的页面布局文件夹中,查询获取与待展示的页面信息相匹配的页面布局文件;根据移动终端属性信息中包含的移动终端屏幕尺寸信息与以等分值表示的布局信息,获取包含赋值的待加载页面布局文件。其中,所述根据移动终端属性信息中包含的移动终端屏幕尺寸信息与以等分值表示的布局信息,获取包含赋值的待加载页面布局文件包括:获取移动终端属性信息中包含的移动终端屏幕尺寸信息;获取页面布局文件键值对中的阈值,将获取的移动终端屏幕尺寸信息按照阈值进行等分,获取赋值等分值;获取页面布局文件键值对中以等分值倍数表示的等分布局信息;将赋值等分值与等分值倍数相乘,生成包含赋值的待加载页面布局文件。其中,所述方法进一步包括:预先设置用于存放不同屏幕密度下图片资源的图片文件夹;判断待加载页面布局文件中的组件是否为图片,如果不是,执行所述加载生成的待加载页面布局文件;如果是,获取移动终端属性信息中的屏幕密度信息;查询图片文件夹,得到与获取的屏幕密度信息相匹配的图片文件;根据页面布局文件中的图片标识,从得到的图片文件中获取与图片标识相匹配的图片,并按照待加载页面布局文件中的图片标识对应的赋值进行调节后加载至移动终端屏幕。其中,所述移动终端屏幕尺寸包括:移动终端屏幕的宽度信息以及高度信息;所述布局信息包括:组件的宽度信息、组件的高度信息、组件距左屏幕的距离信息、组件距右屏幕的距离信息、组件距上屏幕的距离信息、组件距下屏幕的距离信息。一种基于安卓操作系统的软件适应移动终端的装置,该装置包括:页面布局文件设置模块、移动终端属性信息获取模块、待加载页面布局文件生成模块以及页面布局加载模块,其中,页面布局文件设置模块,用于根据预先设置的阈值等分预定移动终端屏幕尺寸,得到等分值,以等分值表示软件每一页面中包含的各组件在该预定移动终端屏幕的布局信息,分别得到每一页面对应的页面布局文件;移动终端属性信息获取模块,用于在启动软件后,获取运行软件的移动终端属性信息;待加载页面布局文件生成模块,用于根据待展示的页面信息及移动终端属性信息,读取对应的页面布局文件,进行设置,生成待加载页面布局文件;页面布局加载模块,用于加载生成的待加载页面布局文件。较佳地,所述装置进一步包括:页面图片存储模块以及页面图片加载模块,其中,页面图片存储模块,用于存放不同屏幕密度下图片资源的图片文件夹;页面图片加载模块,用于判断待加载页面布局文件生成模块中的待加载页面布局文件中的组件是否为图片,如果不是,通知页面布局加载模块进行加载;如果是,获取移动终端属性信息中的屏幕密度信息,查询页面图片存储模块,得到与获取的屏幕密度信息相匹配的图片文件,根据待加载页面布局文件中的图片标识,从得到的图片文件中获取与图片标识相匹配的图片,并按照待加载页面布局文件中的图片标识对应的赋值进行调节后加载至移动终端屏幕。由上述技术方案可见,本发明实施例提供的一种基于Android操作系统的软件适应移动终端的方法及装置,根据预先设置的阈值等分预定移动终端屏幕尺寸,得到等分值,以等分值表示软件每一页面中包含的各组件在该预定移动终端屏幕的布局信息,分别得到每一页面对应的页面布局文件;启动软件,获取运行软件的移动终端属性信息;根据待展示的页面信息及移动终端属性信息,读取对应的页面布局文件,进行设置,生成待加载页面布局文件;加载生成的待加载页面布局文件。这样,通过预先设置阈值等分预定移动终端屏幕尺寸,以等分值表示软件每一页面中包含的各组件在该预定移动终端屏幕的布局信息,使得一个页面只有一个页面布局文件,有效降低了设置页面布局文件所需的时间,从而提升了软件开发效率;进一步地,一个页面布局文件可以适应多种屏幕分辨率,从而有效地实现任意分辨率自适应,而不增大软件大小,所需存储空间小,存储成本低。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,以下将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,以下描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员而言,还可以根据这些附图所示实施例得到其它的实施例及其附图。图1为本发明实施例基于安卓操作系统的软件适应移动终端的方法流程示意图。图2为本发明实施例基于Android操作系统的软件适应移动终端的装置结构示意图。具体实施方式以下将结合附图对本发明各实施例的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的 实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本发明所保护的范围。Android操作系统是应用于移动终端的操作系统,运行在Android操作系统上的移动终端,其屏幕大小、分辨率和屏幕密度千差万别。虽然现有的Android操作系统,可以根据不同的移动终端属性,设置软件各页面中包含的组件的布局文件以及图片文件,以与相应移动终端属性相适应,但需要针对每一不同的移动终端属性,分别进行设置,所需存储空间较大、软件开发效率以及易用性较低,无法提供最好的用户体验效果。运行于移动终端的软件,其软件页面需要与移动终端的屏幕大小相适应,即需要根据移动终端屏幕尺寸进行调整,同时,软件各页面中包含的组件的尺寸,也需要根据页面尺寸的变化进行相应调整。本发明实施例中,考虑到针对一个具体的移动终端屏幕,页面的尺寸可以确定;而每一页面中包含的组件的尺寸,也可以确定。这样,页面中包含的各组件在页面的布局,即组件尺寸相对页面尺寸或移动终端屏幕尺寸的比例系数,也可以确定并为一常数。因而,在移动终端屏幕尺寸大小发生变化时,只需根据该确定的比例系数,根据当前移动终端屏幕尺寸,调整页面中包含的各组件的相应布局尺寸,即可使软件页面能够适应不同的移动终端。基于此,本发明实施例提出一种基于Android操作系统的软件自适应移动终端属性的方法,计算页面中包含的各组件相对于移动终端属性的比例系数,以移动终端的屏幕大小为变量,将页面中包含的各组件以比例系数及变量表示,从而预先设置页面的布局文件设计规则,实现对软件在不同移动终端屏幕上的组件布局,例如,宽度、高度、间距和字体大小进行控制,在不增大软件大小的基础上,使软件不同页面中包含的各组件能够自动适应不同移动终端的屏幕。图1为本发明实施例基于安卓操作系统的软件适应移动终端的方法流程示意图。参见图1,该流程包括:步骤101,根据预先设置的阈值等分预定移动终端屏幕尺寸,得到等分值,以等分值表示软件每一页面中包含的各组件在该预定移动终端屏幕的布局信息,分别得到每一页面对应的页面布局文件;本步骤中,移动终端屏幕尺寸包括:移动终端屏幕的宽度信息以及高度信息。阈值可以根据实际需要进行设置。较佳地,阈值为移动终端屏幕密度 信息,可以设置为为160、80、240或320。布局信息包括:组件的宽度信息、组件的高度信息、组件距左屏幕的距离信息、组件距右屏幕的距离信息、组件距上屏幕的距离信息、组件距下屏幕的距离信息。进一步地,布局信息还可以包括组件字体信息。本发明实施例中,根据预先设置的阈值等分预定移动终端屏幕尺寸,得到等分值,以等分值表示软件每一页面中包含的各组件在该预定移动终端屏幕的布局信息具体包括:A11,获取预定移动终端屏幕尺寸信息;本步骤中,假设获取的移动终端屏幕的宽度为w,高度为h。A12,根据预先设置的阈值等分获取的移动终端屏幕尺寸,得到等分值;本步骤中,等分值包括:宽度等分值以及高度等分值。本发明实施例中,阈值为移动终端屏幕密度信息,如果预先设置的阈值为160,则得到的宽度等分值为w/160,高度等分值为h/160。即在获取移动终端屏幕的宽度值和高度值后,将其除以160,分别得到经160等分后的宽度等分值(w/160)和高度等分值(h/160)。进一步地,还可以将高度等分值以及宽度等分值进行循环处理,循环因子(i)从1开始,一直到设置的阈值160,共循环160次,每一次循环结束后,通过将循环因子i加1执行下一次循环,直至循环结束。在每一次循环中,即循环因子i为1到160的循环流程中,分别算出循环因子i对应的宽度等分值(w*i/160)以及高度等分值(h*i/160)。执行循环处理的程序代码段如下:A13,获取软件每一页面中包含的各组件以移动终端屏幕尺寸表示的布局信息;本步骤中,假设获取的某一组件以移动终端屏幕尺寸表示的部分布局信息为:宽度为w/160、高度为h/40、组件距左屏幕的距离为w/80。A14,将获取的布局信息换算为以等分值倍数表示的等分布局信息。本步骤中,对布局信息按照等分值进行换算后,得到以等分值倍数表示的等分布局信息,具体为:宽度为1、高度为4、组件距左屏幕的距离为2。在获取以等分值倍数表示的等分布局信息后,将获取的等分布局信息写入该页面对应的页面布局文件中,并将多个页面布局文件组成页面布局文件夹。这样,每一页面布局文件中,包含该页面中各组件以等分值倍数表示的等分布局信息。后续中,组件的布局信息只需根据该等分布局信息以及运行软件的移动终端屏幕尺寸确定,随移动终端屏幕的不同而相应发生变化,从而无需针对不同的移动终端屏幕尺寸,分别设置适应移动终端屏幕尺寸的布局文件,降低了技术人员设置布局文件所需的时间,提升了软件开发效率;进一步地,软件可以根据不同的移动终端属性进行自适应,易用性高;而且,针对不同的移动终端属性,只需存储一份布局文件,大大减少了存储空间,有效降低了存储成本。较佳地,可以采用存储类效率分析(SharedPreferences)存储页面布局文件中的等分布局信息。SharedPreferences是轻型的数据存储方式,是Android操作系统采用的一种存储技术,通过将数据保存到软件的私有存储区,以键值(key-value)对的方式进行存储,该私有存储区中的数据,只能被写入存储数据的软件读取。键值对中,键为等分布局信息以及阈值,值设置为缺省,关于键格式的描述,后续再进行详细描述。实际应用中,在页面布局文件中还可以存储各循环因子对应的等分值。例如,当获取的移动终端屏幕宽度为320、预先设置的阈值为160时,宽度等分值为2。则在前述循环中,当i=1时,对应的宽度等分值为2,当i=2 时,对应的宽度等分值为4,依此类推,当i=160时,对应的宽度等分值为320,从而可以得到1倍至160倍宽度等分值的等分布局信息。本发明实施例中,存储的键值对格式可以为:“height_1_160,5”,其中,height_1_160为键,表示该组件的高度为经160等分的1倍高度等分值,“5”为值(本发明为缺省,即不置值),表示1倍高度等分值对应的具体等分布局数值。根据该键值对格式,可以计算出用于等分的移动终端屏幕高度为:160*5=800。本发明实施例的页面布局文件中,存储的键值对的值为缺省值,即键值对格式为:“height_1_160”,表示该组件的高度为经160等分的1倍高度等分值,具体数值需要根据移动终端屏幕高度确定。例如,如果移动终端屏幕高度为800,则1倍高度等分值对应的等分布局具体数值为5;如果移动终端屏幕高度为1600,则1倍高度等分值对应的等分布局具体数值为10。实际应用中,布局文件中除了可以存储宽高的数据信息外,还可以存储软件中用到的字体大小,例如,设置软件中用到的字体大小为20,则存储数据信息:fontSize_20。本发明实施例中,通过上述布局文件中存储的宽、高、字体信息,可以实现软件在各移动终端屏幕动态设置宽、高、间距等属性,从而实现自适应移动终端属性。多个页面布局文件形成页面布局文件夹。本发明实施例中,在开放源代码的、基于Java的可扩展开发平台Eclipse下开发基于Android操作系统的软件时,可以在res文件夹下的layout文件夹下创建绘制软件页面适应于移动终端的页面布局文件(layout文件)。该layout文件可以利用Eclipse提供的Graphicallayout工具,根据实际需要,设置以等分值倍数表示的等分布局信息。当然,实际应用中,layout文件也可以只进行横竖屏、分辨率和像素密度设置;然后,在res文件夹下的values文件夹下,分别创建dimens_height.xml和dimens_width.xml两个配置文件,依据预先根据屏幕密度设置的阈值,将移动终端的宽、高分别按照预先设置的阈值进行等分,例如,分为160、80、240或320等份,并将每一等份的宽度信息和高度信息,即等分布局信息分别写入相应的配置文件中。举例来说,在dimens_height.xml配置文件中,存储等分的高度信息,存储的键值对格式为:<dimenname="height_1_160">5.0px</dimen>。这样,在页面布局文件中设置宽、高、间距等属性时,不直接使用具体的宽度单位, 而是引用配置文件dimens_height.xml和dimens_width.xml中的键。例如,通过引用配置文件dimens_width.xml中的键:Android:layout_width="@dimen/width_64_160"进行设置。其中,在layout文件夹的页面布局文件中,每一个布局文件中的组都有一个宽度的属性,例如:Android:layout_width=“”,等号后边为宽度的值。本发明实施例中,采用“@dimen/width_64_160”代替等号后边为宽度的值,表示引用layout/vaules/dimen文件中的width_64_160,表示组件的宽度为64倍等分值。较佳地,在步骤101之前或之后,该方法还可以进一步包括:设置用于存放不同屏幕密度下图片资源的图片文件夹。本步骤中,设置drawable文件夹,用于存放不同屏幕密度下的图片资源。例如,针对各移动终端的不同屏幕密度,在drawable文件夹中分别设置高密度(drawable-hdpi)图片文件夹、中密度(drawable-mdpi)图片文件夹、低密度(drawable-ldpi)图片文件夹等。从而针对不同屏幕密度,将不同屏幕密度对应的图片存放到相应的图片文件夹中,使得移动终端在启动软件时,如果页面中组件为图片时,自动加载移动终端屏幕密度对应的图片文件夹中存放的图片,并根据布局文件中该组件的等分布局信息调整加载图片的尺寸,以适应该移动终端屏幕密度的要求。较佳地,页面布局文件以页面为标识,页面中包含的组件如果为图片,则该组件与图片文件夹中,在不同屏幕密度下存储的图片形成映射关系,从而根据该映射关系,可以获取组件映射的图片。步骤102,启动软件,获取运行软件的移动终端属性信息;本步骤中,移动终端属性信息包括:移动终端屏幕尺寸信息、移动终端屏幕分辨率信息以及移动终端屏幕密度信息。获取运行软件的移动终端属性信息包括:通过软件Java代码层,启动页面对应的Activity获取运行软件的移动终端属性信息。本步骤中,在软件启动的第一个页面对应的激活(Activity)中,可以获取当前移动终端属性信息,例如,移动终端屏幕宽、高、分辨率、密度等信息。本发明实施例中,获取移动终端属性信息的通用程序代码段如下:DisplayMetricsmetric=newDisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(metric);Contant.width=metric.widthPixels;//屏幕宽度(像素)Contant.height=metric.heightPixels;//屏幕高度(像素)Contant.density=metric.density;//屏幕密度(0.75/1.0/1.5)Contant.densityDpi=metric.densityDpi;//屏幕密度DPI(120/160/240)步骤103,根据待展示的页面信息及移动终端属性信息,读取对应的页面布局文件,进行设置,生成待加载页面布局文件;本步骤具体包括:B11,获取待展示的页面信息;本步骤中,由于不同页面中包含有不同的组件,不同页面中的组件的布局各不相同。因而,需要根据待展示的页面信息,从页面布局文件夹中,获取对应的页面布局文件。关于获取待展示的页面信息,具体可参见相关技术文献,在此不再赘述。B12,从预先设置的页面布局文件夹中,查询获取与待展示的页面信息相匹配的页面布局文件;本步骤中,待展示的页面信息为页面标识信息,根据该页面标识信息,从页面布局文件夹中,可以获取与该页面标识相匹配的页面布局文件。B13,根据移动终端属性信息中包含的移动终端屏幕尺寸信息与以等分值表示的布局信息,获取包含赋值的待加载页面布局文件。本步骤具体包括:B111,获取移动终端属性信息中包含的移动终端屏幕尺寸信息;B112,获取页面布局文件键值对中的阈值,将获取的移动终端屏幕尺寸信息按照阈值进行等分,获取赋值等分值;B113,获取页面布局文件键值对中以等分值倍数表示的等分布局信息;B114,将赋值等分值与等分值倍数相乘,生成包含赋值的待加载页面布局文件。本发明实施例中,依据前述获取到的移动终端属性信息,将移动终端屏幕宽、高分别按照预先设置的阈值进行等分。等分后,将等分好的宽、高数据和软件中涉及到的字体大小等信息存入页面布局文件中。这样,通过获取SharedPreferences的sp对象,调用sp对象的getFloat()方法,可以 获得相应的值。例如,通过getFloat()方法:sp.getFloat("width_2_160",0)。其中,"width_2_160"为键,当SharedPreferences中不存在该键时,方法会返回第二个参数“0”及默认值,将移动终端屏幕尺寸按照键中包含的阈值进行等分,再将等分得到的值与键中等分值倍数相乘,得到组件的布局信息。步骤104,加载生成的待加载页面布局文件。本步骤中,根据生成的待加载页面布局文件,可以获取待展示页面中包含的各组件的具体布局信息,加载该待加载页面布局文件后,可以得到与移动终端属性相适应的页面。如前所述,如果设置有用于存放不同屏幕密度下图片资源的图片文件夹,则该方法进一步包括:C1,判断待加载页面布局文件中的组件是否为图片,如果是,执行步骤C2,否则,加载生成的待加载页面布局文件;C2,获取移动终端属性信息中的屏幕密度信息;C3,查询图片文件夹,得到与获取的屏幕密度信息相匹配的图片文件;C4,根据页面布局文件中的图片标识,从得到的图片文件中获取与图片标识相匹配的图片,并按照待加载页面布局文件中的图片标识对应的赋值进行调节后加载至移动终端屏幕。本发明实施例中,每一个页面布局文件对应一个java类及Activity,通过获取布局文件对应的Activity,在获取的Activity中,可以获取SharedPreferences对象,依据页面布局文件中组件宽、高、字体大小等属性的设置,再在Acitvity中设置一遍,生成可加载的待加载页面布局文件。需要设置的参数包括:组件的宽、高、字体大小、组件距左的距离、距上的距离、距右的距离、距下的距离等。本发明实施例中,设置组件的布局信息时,不使用具体的长度单位,而是引用SharedPreferences对象的键。这样,虽然不同移动终端的分辨率不同,但同一个SharedPreferences对象中,保存的键的个数,即宽、高被分的个数是一样的,只是同一个键对应的值会根据分辨率大小变化而变化,使得组件的属性根据移动终端分辨率的不同而变化,从而实现自适应。举例来说,每一基于Android操作系统的软件都具有一个启动画面以及一个Acitvity,在该Activity中,先获取当前使用的移动终端屏幕宽、高、屏幕密度,然后根据预先设置的阈值分割宽、高,并将分好的数据存入 SharedPreferences中。这样,无论是在何种分辨率的移动终端上运行该软件,都将根据设置的阈值进行分割。也就是说,SharedPreferences里保存的数据的键都是从“height_1_160”到“height_160_160”,只不过会随着该软件在不同分辨率移动终端上运行时,随着移动终端屏幕宽、高的不同,键对应的值会变化。例如,在宽为320的移动终端上,键为:“height_1_160”,对应的值为2;但在宽为640的移动终端上,键同样为:“height_1_160”,但对应的值为4。换句话说,不同分辨率的移动终端中,SharedPreferences保存的值是不同的,但是每个Activity中都会为组件设置一样的键,例如,某一个Activity中的组件A,在屏幕宽度为320的移动终端上,如果组件A的宽度为前述设置的sp.getFloat("width_2_160",0),则该组件A对应的值是4;而在屏幕宽度为640的移动终端上,如果组件A的宽度依然设置为sp.getFloat("width_2_160",0),但该组件A对应的值为8。这样,软件中每一个Activity的每一个组件都可以设置相应的宽、高、字体大小、控件距左的距离、距上的距离、距右的距离、距下的距离。从而在软件进行自适应时,通过预先设置布局文件设计规则和屏幕分辨率、屏幕密度的算法,对页面中包含的组件宽度、高度、间距和字体大小进行控制,一个页面只有一个页面布局文件,有效降低了设置页面布局文件所需的时间,从而提升了软件开发效率;进一步地,一个页面布局文件可以适应多种屏幕分辨率,从而有效地实现任意分辨率自适应,而不增大软件大小,页面布局文件易用性高,用户体验好,所需存储空间小,存储成本低。图2为本发明实施例基于Android操作系统的软件适应移动终端的装置结构示意图。参见图2,该装置包括:页面布局文件设置模块、移动终端属性信息获取模块、待加载页面布局文件生成模块以及页面布局加载模块,其中,页面布局文件设置模块,用于根据预先设置的阈值等分预定移动终端屏幕尺寸,得到等分值,以等分值表示软件每一页面中包含的各组件在该预定移动终端屏幕的布局信息,分别得到每一页面对应的页面布局文件;本发明实施例中,移动终端屏幕尺寸包括:移动终端屏幕的宽度信息以及高度信息。布局信息包括:组件的宽度信息、组件的高度信息、组件距左屏幕的距离信息、组件距右屏幕的距离信息、组件距上屏幕的距离信息、组件距下屏幕的距离信息。本发明实施例中,以键值(key-value)对的方式存储布局信息,键值对中,键由等分布局信息以及阈值组成。移动终端属性信息获取模块,用于在启动软件后,获取运行软件的移动终端属性信息;本发明实施例中,移动终端属性信息包括:移动终端屏幕尺寸信息、移动终端屏幕分辨率信息以及移动终端屏幕密度信息。待加载页面布局文件生成模块,用于根据待展示的页面信息及移动终端属性信息,读取对应的页面布局文件,进行设置,生成待加载页面布局文件;本发明实施例中,待加载页面布局文件生成模块首先获取待展示的页面信息;接着,从预先设置的页面布局文件夹中,查询获取与待展示的页面信息相匹配的页面布局文件;然后,根据移动终端属性信息中包含的移动终端屏幕尺寸信息与以等分值表示的布局信息,获取包含赋值的待加载页面布局文件。页面布局加载模块,用于加载生成的待加载页面布局文件。较佳地,该装置还可以进一步包括:页面图片存储模块以及页面图片加载模块,其中,页面图片存储模块,用于存放不同屏幕密度下图片资源的图片文件夹;页面图片加载模块,用于判断待加载页面布局文件生成模块中的待加载页面布局文件中的组件是否为图片,如果不是,通知页面布局加载模块进行加载;如果是,获取移动终端属性信息中的屏幕密度信息,查询页面图片存储模块,得到与获取的屏幕密度信息相匹配的图片文件,根据待加载页面布局文件中的图片标识,从得到的图片文件中获取与图片标识相匹配的图片,并按照待加载页面布局文件中的图片标识对应的赋值进行调节后加载至移动终端屏幕。显然,本领域技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也包含这些改动和变型在内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1