CN103345388A - 基于安卓操作系统的软件适应移动终端的方法及装置 - Google Patents

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

Info

Publication number
CN103345388A
CN103345388A CN2013102222168A CN201310222216A CN103345388A CN 103345388 A CN103345388 A CN 103345388A CN 2013102222168 A CN2013102222168 A CN 2013102222168A CN 201310222216 A CN201310222216 A CN 201310222216A CN 103345388 A CN103345388 A CN 103345388A
Authority
CN
China
Prior art keywords
page
information
file
mobile terminal
software
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.)
Granted
Application number
CN2013102222168A
Other languages
English (en)
Other versions
CN103345388B (zh
Inventor
王非
李振宇
宁江
贾晓霞
丰国炳
郑扬飞
胡春波
刘玉龙
刘毅
张慧吉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CETC 15 Research Institute
Original Assignee
CETC 15 Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by CETC 15 Research Institute filed Critical CETC 15 Research Institute
Priority to CN201310222216.8A priority Critical patent/CN103345388B/zh
Publication of CN103345388A publication Critical patent/CN103345388A/zh
Application granted granted Critical
Publication of CN103345388B publication Critical patent/CN103345388B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种基于Android操作系统的软件适应移动终端的方法及装置。该方法包括:根据预先设置的阈值等分预定移动终端屏幕尺寸,得到等分值,以等分值表示软件每一页面中包含的各组件在该预定移动终端屏幕的布局信息,分别得到每一页面对应的页面布局文件;启动软件,获取运行软件的移动终端属性信息;根据待展示的页面信息及移动终端属性信息,读取对应的页面布局文件,进行设置,生成待加载页面布局文件;加载生成的待加载页面布局文件。应用本发明,可以降低存储成本、提高软件开发效率。

Description

基于安卓操作系统的软件适应移动终端的方法及装置
技术领域
本发明涉及操作系统软件设计技术,尤其涉及一种基于安卓(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)。
执行循环处理的程序代码段如下:
/**
*将屏幕的宽和高分为160等份,存入SharedPreferences文件中
*fontSize_24为字体,公式:px=dp(或sp)*(dpi/160)
*param height
*param width
*/
Figure BDA00003307109400071
Figure BDA00003307109400081
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提供的Graphical layout工具,根据实际需要,设置以等分值倍数表示的等分布局信息。当然,实际应用中,layout文件也可以只进行横竖屏、分辨率和像素密度设置;然后,在res文件夹下的values文件夹下,分别创建dimens_height.xml和dimens_width.xml两个配置文件,依据预先根据屏幕密度设置的阈值,将移动终端的宽、高分别按照预先设置的阈值进行等分,例如,分为160、80、240或320等份,并将每一等份的宽度信息和高度信息,即等分布局信息分别写入相应的配置文件中。举例来说,在dimens_height.xml配置文件中,存储等分的高度信息,存储的键值对格式为:<dimen name="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)中,可以获取当前移动终端属性信息,例如,移动终端屏幕宽、高、分辨率、密度等信息。
本发明实施例中,获取移动终端属性信息的通用程序代码段如下:
DisplayMetrics metric=new DisplayMetrics();
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)对的方式存储布局信息,键值对中,键由等分布局信息以及阈值组成。
移动终端属性信息获取模块,用于在启动软件后,获取运行软件的移动终端属性信息;
本发明实施例中,移动终端属性信息包括:移动终端屏幕尺寸信息、移动终端屏幕分辨率信息以及移动终端屏幕密度信息。
待加载页面布局文件生成模块,用于根据待展示的页面信息及移动终端属性信息,读取对应的页面布局文件,进行设置,生成待加载页面布局文件;
本发明实施例中,待加载页面布局文件生成模块首先获取待展示的页面信息;接着,从预先设置的页面布局文件夹中,查询获取与待展示的页面信息相匹配的页面布局文件;然后,根据移动终端属性信息中包含的移动终端屏幕尺寸信息与以等分值表示的布局信息,获取包含赋值的待加载页面布局文件。
页面布局加载模块,用于加载生成的待加载页面布局文件。
较佳地,该装置还可以进一步包括:页面图片存储模块以及页面图片加载模块,其中,
页面图片存储模块,用于存放不同屏幕密度下图片资源的图片文件夹;
页面图片加载模块,用于待加载页面布局文件生成模块中的待加载页面布局文件中的组件是否为图片,如果不是,通知页面布局加载模块进行加载;如果是,获取移动终端属性信息中的屏幕密度信息,查询页面图片存储模块,得到与获取的屏幕密度信息相匹配的图片文件,根据待加载页面布局文件中的图片标识,从得到的图片文件中获取与图片标识相匹配的图片,并按照待加载页面布局文件中的图片标识对应的赋值进行调节后加载至移动终端屏幕。
显然,本领域技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也包含这些改动和变型在内。

Claims (10)

1.一种基于安卓操作系统的软件适应移动终端的方法,该方法包括:
根据预先设置的阈值等分预定移动终端屏幕尺寸,得到等分值,以等分值表示软件每一页面中包含的各组件在该预定移动终端屏幕的布局信息,分别得到每一页面对应的页面布局文件;
启动软件,获取运行软件的移动终端属性信息;
根据待展示的页面信息及移动终端属性信息,读取对应的页面布局文件,进行设置,生成待加载页面布局文件;
加载生成的待加载页面布局文件。
2.根据权利要求1所述的方法,其中,所述根据预先设置的阈值等分预定移动终端屏幕尺寸,得到等分值,以等分值表示软件每一页面中包含的各组件在该预定移动终端屏幕的布局信息包括:
获取预定移动终端屏幕尺寸信息;
根据预先设置的阈值等分获取的移动终端屏幕尺寸,得到等分值;
获取软件每一页面中包含的各组件以移动终端屏幕尺寸表示的布局信息;
将获取的布局信息换算为以等分值倍数表示的等分布局信息。
3.根据权利要求2所述的方法,其中,所述等分布局信息以键值对的方式进行存储,所述键值对中,键为等分布局信息以及阈值,值设置为缺省。
4.根据权利要求1所述的方法,其中,所述获取运行软件的移动终端属性信息包括:
通过软件Java代码层,启动页面对应的Activity获取运行软件的移动终端属性信息。
5.根据权利要求1所述的方法,其中,所述根据待展示的页面信息及移动终端属性信息,读取对应的页面布局文件,进行设置,生成待加载页面布局文件包括:
获取待展示的页面信息;
从预先设置的页面布局文件夹中,查询获取与待展示的页面信息相匹配的页面布局文件;
根据移动终端属性信息中包含的移动终端屏幕尺寸信息与以等分值表示的布局信息,获取包含赋值的待加载页面布局文件。
6.根据权利要求5所述的方法,其中,所述根据移动终端属性信息中包含的移动终端屏幕尺寸信息与以等分值表示的布局信息,获取包含赋值的待加载页面布局文件包括:
获取移动终端属性信息中包含的移动终端屏幕尺寸信息;
获取页面布局文件键值对中的阈值,将获取的移动终端屏幕尺寸信息按照阈值进行等分,获取赋值等分值;
获取页面布局文件键值对中以等分值倍数表示的等分布局信息;
将赋值等分值与等分值倍数相乘,生成包含赋值的待加载页面布局文件。
7.根据权利要求1所述的方法,其中,所述方法进一步包括:
预先设置用于存放不同屏幕密度下图片资源的图片文件夹;
判断待加载页面布局文件中的组件是否为图片,如果不是,执行所述加载生成的待加载页面布局文件;如果是,获取移动终端属性信息中的屏幕密度信息;
查询图片文件夹,得到与获取的屏幕密度信息相匹配的图片文件;
根据页面布局文件中的图片标识,从得到的图片文件中获取与图片标识相匹配的图片,并按照待加载页面布局文件中的图片标识对应的赋值进行调节后加载至移动终端屏幕。
8.根据权利要求1至7任一项所述的方法,其中,所述移动终端屏幕尺寸包括:移动终端屏幕的宽度信息以及高度信息;
所述布局信息包括:组件的宽度信息、组件的高度信息、组件距左屏幕的距离信息、组件距右屏幕的距离信息、组件距上屏幕的距离信息、组件距下屏幕的距离信息。
9.一种基于安卓操作系统的软件适应移动终端的装置,其特征在于,该装置包括:页面布局文件设置模块、移动终端属性信息获取模块、待加载页面布局文件生成模块以及页面布局加载模块,其中,
页面布局文件设置模块,用于根据预先设置的阈值等分预定移动终端屏幕尺寸,得到等分值,以等分值表示软件每一页面中包含的各组件在该预定移动终端屏幕的布局信息,分别得到每一页面对应的页面布局文件;
移动终端属性信息获取模块,用于在启动软件后,获取运行软件的移动终端属性信息;
待加载页面布局文件生成模块,用于根据待展示的页面信息及移动终端属性信息,读取对应的页面布局文件,进行设置,生成待加载页面布局文件;
页面布局加载模块,用于加载生成的待加载页面布局文件。
10.根据权利要求9所述的装置,其特征在于,所述装置进一步包括:页面图片存储模块以及页面图片加载模块,其中,
页面图片存储模块,用于存放不同屏幕密度下图片资源的图片文件夹;
页面图片加载模块,用于待加载页面布局文件生成模块中的待加载页面布局文件中的组件是否为图片,如果不是,通知页面布局加载模块进行加载;如果是,获取移动终端属性信息中的屏幕密度信息,查询页面图片存储模块,得到与获取的屏幕密度信息相匹配的图片文件,根据待加载页面布局文件中的图片标识,从得到的图片文件中获取与图片标识相匹配的图片,并按照待加载页面布局文件中的图片标识对应的赋值进行调节后加载至移动终端屏幕。
CN201310222216.8A 2013-06-05 2013-06-05 基于安卓操作系统的软件适应移动终端的方法及装置 Active CN103345388B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310222216.8A CN103345388B (zh) 2013-06-05 2013-06-05 基于安卓操作系统的软件适应移动终端的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310222216.8A CN103345388B (zh) 2013-06-05 2013-06-05 基于安卓操作系统的软件适应移动终端的方法及装置

Publications (2)

Publication Number Publication Date
CN103345388A true CN103345388A (zh) 2013-10-09
CN103345388B CN103345388B (zh) 2016-11-23

Family

ID=49280186

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310222216.8A Active CN103345388B (zh) 2013-06-05 2013-06-05 基于安卓操作系统的软件适应移动终端的方法及装置

Country Status (1)

Country Link
CN (1) CN103345388B (zh)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103605640A (zh) * 2013-12-03 2014-02-26 中国联合网络通信集团有限公司 表单适配方法和装置
CN103677939A (zh) * 2013-12-25 2014-03-26 广东天拓资讯科技有限公司 一种网络游戏场景图片的加载方法及装置
CN105373385A (zh) * 2015-11-23 2016-03-02 四川长虹电器股份有限公司 一种Android应用多分辨率UI界面适配脚本化开发方法
CN105653284A (zh) * 2015-12-29 2016-06-08 Tcl集团股份有限公司 一种生成安卓平台的场景文件的方法和装置
CN105955888A (zh) * 2016-05-04 2016-09-21 腾讯科技(深圳)有限公司 一种页面调试预览方法及系统
CN106406839A (zh) * 2015-07-31 2017-02-15 华为软件技术有限公司 屏幕适配文件的处理方法和装置
CN106648700A (zh) * 2016-12-29 2017-05-10 深圳Tcl数字技术有限公司 兼容不同分辨率的显示方法和装置
CN106776738A (zh) * 2016-11-18 2017-05-31 北京奇虎科技有限公司 一种网页生成、显示方法和装置
WO2017107572A1 (zh) * 2015-12-24 2017-06-29 北京大学 一种面向智能手表的Android应用重构方法
CN106919405A (zh) * 2015-12-24 2017-07-04 阿里巴巴集团控股有限公司 一种客户端的初始化方法及装置
CN108052677A (zh) * 2018-01-02 2018-05-18 武汉斗鱼网络科技有限公司 页面处理方法、装置及可读存储介质
WO2018120719A1 (zh) * 2016-12-30 2018-07-05 上海壹账通金融科技有限公司 移动端程序界面的更新方法、装置、设备及计算机可读存储介质
CN108829488A (zh) * 2018-06-28 2018-11-16 腾讯音乐娱乐科技(深圳)有限公司 生成Web可交互页面的方法、装置及存储介质
CN109344352A (zh) * 2018-08-09 2019-02-15 广州优视网络科技有限公司 页面加载方法、装置及电子设备
CN110096322A (zh) * 2019-03-25 2019-08-06 北京辰森世纪科技股份有限公司 适配终端屏幕的方法及装置、存储介质、电子装置
CN110673903A (zh) * 2018-07-02 2020-01-10 广州阿里巴巴文学信息技术有限公司 一种阅读软件的书架页面的显示方法和装置
CN110764850A (zh) * 2018-07-26 2020-02-07 阿里巴巴集团控股有限公司 界面显示方法、参数赋值方法、系统及设备
CN111125466A (zh) * 2018-11-01 2020-05-08 百度在线网络技术(北京)有限公司 仪表盘布局方法及装置
CN113190196A (zh) * 2021-04-27 2021-07-30 北京京东振世信息技术有限公司 多设备联动实现方法、装置、介质及电子设备
CN113590537A (zh) * 2021-07-30 2021-11-02 平安普惠企业管理有限公司 图片资源加载方法、装置、设备及存储介质
CN116301847A (zh) * 2023-01-28 2023-06-23 广西数字大脑智能科技有限责任公司 一种基于开发平台快速生成页面的系统及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1746843A (zh) * 2004-09-08 2006-03-15 英业达股份有限公司 视窗及其图标设定系统及方法
US20070130523A1 (en) * 2005-12-01 2007-06-07 Tai-Yeon Ku User interface automatic transform system and method based on display device
CN102298495A (zh) * 2011-06-27 2011-12-28 上海北大方正科技电脑系统有限公司 一种android软件自适应不同屏幕密度的方法
CN102779167A (zh) * 2012-06-21 2012-11-14 北京奇虎科技有限公司 在移动终端中显示网页的方法及系统
CN103064920A (zh) * 2012-12-20 2013-04-24 优视科技有限公司 移动终端中的页面字体大小缩放方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1746843A (zh) * 2004-09-08 2006-03-15 英业达股份有限公司 视窗及其图标设定系统及方法
US20070130523A1 (en) * 2005-12-01 2007-06-07 Tai-Yeon Ku User interface automatic transform system and method based on display device
CN102298495A (zh) * 2011-06-27 2011-12-28 上海北大方正科技电脑系统有限公司 一种android软件自适应不同屏幕密度的方法
CN102779167A (zh) * 2012-06-21 2012-11-14 北京奇虎科技有限公司 在移动终端中显示网页的方法及系统
CN103064920A (zh) * 2012-12-20 2013-04-24 优视科技有限公司 移动终端中的页面字体大小缩放方法及装置

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103605640B (zh) * 2013-12-03 2016-08-17 中国联合网络通信集团有限公司 表单适配方法和装置
CN103605640A (zh) * 2013-12-03 2014-02-26 中国联合网络通信集团有限公司 表单适配方法和装置
CN103677939A (zh) * 2013-12-25 2014-03-26 广东天拓资讯科技有限公司 一种网络游戏场景图片的加载方法及装置
CN103677939B (zh) * 2013-12-25 2018-01-16 广东星辉天拓互动娱乐有限公司 一种网络游戏场景图片的加载方法及装置
CN106406839A (zh) * 2015-07-31 2017-02-15 华为软件技术有限公司 屏幕适配文件的处理方法和装置
CN105373385A (zh) * 2015-11-23 2016-03-02 四川长虹电器股份有限公司 一种Android应用多分辨率UI界面适配脚本化开发方法
CN106919405B (zh) * 2015-12-24 2021-06-08 斑马智行网络(香港)有限公司 一种客户端的初始化方法及装置
WO2017107572A1 (zh) * 2015-12-24 2017-06-29 北京大学 一种面向智能手表的Android应用重构方法
CN106919405A (zh) * 2015-12-24 2017-07-04 阿里巴巴集团控股有限公司 一种客户端的初始化方法及装置
CN105653284A (zh) * 2015-12-29 2016-06-08 Tcl集团股份有限公司 一种生成安卓平台的场景文件的方法和装置
CN105955888A (zh) * 2016-05-04 2016-09-21 腾讯科技(深圳)有限公司 一种页面调试预览方法及系统
CN106776738A (zh) * 2016-11-18 2017-05-31 北京奇虎科技有限公司 一种网页生成、显示方法和装置
CN106648700A (zh) * 2016-12-29 2017-05-10 深圳Tcl数字技术有限公司 兼容不同分辨率的显示方法和装置
WO2018120719A1 (zh) * 2016-12-30 2018-07-05 上海壹账通金融科技有限公司 移动端程序界面的更新方法、装置、设备及计算机可读存储介质
CN108052677A (zh) * 2018-01-02 2018-05-18 武汉斗鱼网络科技有限公司 页面处理方法、装置及可读存储介质
CN108829488A (zh) * 2018-06-28 2018-11-16 腾讯音乐娱乐科技(深圳)有限公司 生成Web可交互页面的方法、装置及存储介质
CN110673903A (zh) * 2018-07-02 2020-01-10 广州阿里巴巴文学信息技术有限公司 一种阅读软件的书架页面的显示方法和装置
CN110673903B (zh) * 2018-07-02 2024-03-19 阿里巴巴(中国)有限公司 一种阅读软件的书架页面的显示方法和装置
CN110764850A (zh) * 2018-07-26 2020-02-07 阿里巴巴集团控股有限公司 界面显示方法、参数赋值方法、系统及设备
CN110764850B (zh) * 2018-07-26 2023-06-20 阿里巴巴集团控股有限公司 界面显示方法、参数赋值方法、系统及设备
CN109344352B (zh) * 2018-08-09 2021-04-20 阿里巴巴(中国)有限公司 页面加载方法、装置及电子设备
CN109344352A (zh) * 2018-08-09 2019-02-15 广州优视网络科技有限公司 页面加载方法、装置及电子设备
CN111125466A (zh) * 2018-11-01 2020-05-08 百度在线网络技术(北京)有限公司 仪表盘布局方法及装置
CN111125466B (zh) * 2018-11-01 2023-11-17 百度在线网络技术(北京)有限公司 仪表盘布局方法及装置
CN110096322A (zh) * 2019-03-25 2019-08-06 北京辰森世纪科技股份有限公司 适配终端屏幕的方法及装置、存储介质、电子装置
CN113190196B (zh) * 2021-04-27 2023-09-05 北京京东振世信息技术有限公司 多设备联动实现方法、装置、介质及电子设备
CN113190196A (zh) * 2021-04-27 2021-07-30 北京京东振世信息技术有限公司 多设备联动实现方法、装置、介质及电子设备
CN113590537A (zh) * 2021-07-30 2021-11-02 平安普惠企业管理有限公司 图片资源加载方法、装置、设备及存储介质
CN116301847A (zh) * 2023-01-28 2023-06-23 广西数字大脑智能科技有限责任公司 一种基于开发平台快速生成页面的系统及方法
CN116301847B (zh) * 2023-01-28 2023-11-21 广西数字大脑智能科技有限责任公司 一种基于开发平台快速生成页面的系统及方法

Also Published As

Publication number Publication date
CN103345388B (zh) 2016-11-23

Similar Documents

Publication Publication Date Title
CN103345388A (zh) 基于安卓操作系统的软件适应移动终端的方法及装置
CN110673847B (zh) 配置页面的生成方法、装置、电子设备和可读存储介质
CN105549936B (zh) 数据表的显示方法和装置
CN107562483A (zh) 一种挂载引导文件系统的方法及装置
CN106933887B (zh) 一种数据可视化方法及装置
CN111079062A (zh) 页面创建方法、装置、电子设备和存储介质
CN103761107A (zh) 软件包定制的装置及方法
CN105022635A (zh) 基于云平台的算法文件生成方法、装置及云平台
CN112035207A (zh) 基于数据库的页面菜单动态加载方法及装置
CN104793837A (zh) 图形生成方法及装置
JP4870956B2 (ja) 組み込み用プログラム生成方法、組み込み用プログラム開発システム、及び情報テーブル部
CN113485746B (zh) 应用程序接口文档的生成方法及装置
CN111079382A (zh) 基于mvvm模式的表单渲染方法及系统
KR20150099228A (ko) 애플리케이션 개발 환경 제공 장치
CN105700862A (zh) 图形图像处理方法及设备
CN114238824A (zh) web页面的控制方法、装置、计算机设备和存储介质
CN117234493A (zh) 基于组件化模板的文本处理装置及方法
CN116414443A (zh) 网页中显示对象的生成方法、系统、电子设备和介质
KR20150097190A (ko) 애플리케이션 개발 환경 제공 시스템
KR20150097103A (ko) 애플리케이션 개발 환경 제공 방법
CN103309546A (zh) 控件显示管理系统和方法
CN110807304A (zh) 一种表格导出方法、装置及设备
KR20150099189A (ko) 애플리케이션 개발 환경 제공 장치
KR20150099214A (ko) 애플리케이션 개발 환경 제공 장치
KR20150099029A (ko) 애플리케이션 개발 환경 제공 시스템

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