CN102622217B - 一种跨屏运行应用的方法及系统 - Google Patents
一种跨屏运行应用的方法及系统 Download PDFInfo
- Publication number
- CN102622217B CN102622217B CN201110033467.2A CN201110033467A CN102622217B CN 102622217 B CN102622217 B CN 102622217B CN 201110033467 A CN201110033467 A CN 201110033467A CN 102622217 B CN102622217 B CN 102622217B
- Authority
- CN
- China
- Prior art keywords
- code
- attribute
- adaptive
- screen
- 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.)
- Expired - Fee Related
Links
Abstract
本发明公开一种可跨屏运行应用的方法,包括:将应用的界面抽象为初始化界面代码和动态界面代码;解释运行平台运行初始化界面代码,初始化界面代码计算适配比率,并根据适配比率进行自动屏幕适配;解释运行平台运行动态界面代码,动态界面代码根据适配比率动态进行自动屏幕适配;或将应用的界面抽象为动态界面代码;解释运行平台运行动态界面代码,动态界面代码计算适配比率,并根据适配比率动态进行自动屏幕适配;本发明还提供一种可跨屏运行应用的系统。根据本发明的技术方案,能够在不同的网络平台以及不同大小的屏幕的设备上较好的运行应用。
Description
技术领域
本发明涉及三网融合技术,尤其涉及一种可跨屏运行应用的方法及系统。
背景技术
三网融合是指电信网、计算机网和有线电视网三大网络通过技术改造后,能够提供包括语音、数据、图像等综合多媒体的通信业务,其表现为技术上趋向一致,网络层上可以实现互联互通,形成无缝覆盖,业务层上互相渗透和交叉,应用层上趋向使用统一的IP协议,在经营上互相竞争、互相合作,朝着向用户提供多样化、多媒体化、个性化服务的同一目标,最终逐渐交汇在一起,行业管制和政策方面也逐渐趋向统一。
在三网融合的大背景大趋势下,由于PC、手持移动设备和家用电视以及机顶盒在处理能力、显示设备大小上的巨大差异,造成各个平台的传统应用不能很好地应用到其他平台,而新开发的应用如果要实现跨平台跨屏幕运行,需要在开发过程中加入大量实现屏幕适配的代码,其工作量也不亚于二次开发。
现有技术中,已经存在跨平台跨屏幕的解决方案,如Java虚拟机+J2SE或J2ME、Widget技术等,但是仍然不能很好地解决应用的跨屏运行问题。Java虚拟机+J2SE或J2ME虽然解决了跨平台运行的问题,但是在屏幕适配上,开发人员依然需要编写大量的代码,例如,屏幕分辨率的获取、适配比率的计算、适配方案的选择以及用户界面(UI,UserInterface)元素大小属性的修改等;而Widget技术是利用浏览器内核进行代码解析,具有原生的网络特性,但是在跨屏幕的实现上存在与Java虚拟机+J2SE或J2ME方式相同的问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种可跨屏运行应用的方法及系统,能够在不同的网络平台以及不同大小的屏幕的设备上较好的运行应用。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供一种可跨屏运行应用的方法,该方法包括:
将应用的界面抽象为初始化界面代码和动态界面代码;
解释运行平台运行初始化界面代码,初始化界面代码计算适配比率,并根据适配比率进行自动屏幕适配;
解释运行平台运行动态界面代码,动态界面代码根据适配比率动态进行自动屏幕适配。
上述方法中,所述将应用的界面抽象为初始化界面代码为:
将应用的UI元素和界面布局方式抽象为标记语言中的标签,并为所述标签添加属性,其中,与屏幕自动适配相关的标签的属性包括UI元素的水平间隔属性和垂直间隔属性、高度属性和宽度属性、文字大小属性;将初始化界面代码所应用的显示设备的屏幕分辨率编写到初始化界面代码中;
该方法还包括:为所述标签添加适配必要性属性。
上述方法中,所述将应用的界面抽象为初始化界面代码和动态界面代码为:
将应用的UI元素和布局方式抽象为UI元素对象和布局方式对象,并为所述对象添加属性,其中,与屏幕自动适配相关的对象的属性包括高度属性和宽度属性、水平间隔、垂直间隔和文字大小;在动态界面代码中编写布局方式对象的属性设置方法和与其对应的传入参数,以及UI元素对象的属性设置方法和与其对应的传入参数;
该方法还包括:为所述对象添加适配必要性属性。
上述方法中,所述解释运行平台运行初始化界面代码,初始化界面代码计算适配比率,并根据适配比率进行自动屏幕适配为:
显示设备的解释运行平台根据标签的适配必要性属性的值确定标签需要进行自动屏幕适配时,运行所述初始化界面代码,初始化界面代码获取UI元素的属性和初始化界面代码所应用的显示设备的屏幕分辨率,并利用解释运行平台所在显示设备的屏幕分辨率除以初始化界面代码所应用的显示设备的屏幕分辨率,得到适配比率;利用该适配比率分别与获取的UI元素的属性的属性值相乘,完成标签的初始适配。
上述方法中,所述解释运行平台运行动态界面代码,动态界面代码根据适配比率动态进行自动屏幕适配为:
解释运行平台根据动态界面代码中对象的适配必要性属性的值确定对象需要进行自动屏幕适配时,运行动态界面代码,动态界面代码获取布局方式对象的属性设置方法的传入参数和UI元素对象的属性设置方法的传入参数,利用所述适配比率分别乘以所述传入参数的值,完成布局方式对象的适配和UI元素对象的适配,将修改后的传入参数的值传入所述布局方式对象的属性设置方法和UI元素对象的属性设置方法,动态界面代码继续运行。
本发明还提供一种可跨屏运行应用的方法,该方法包括;
将应用的界面抽象为动态界面代码;
解释运行平台运行动态界面代码,动态界面代码计算适配比率,并根据适配比率动态进行自动屏幕适配。
上述方法中,所述将应用的界面抽象为动态界面代码为:
将应用的UI元素和布局方式抽象为UI元素对象和布局方式对象,并为所述对象添加属性,其中,所述与屏幕自动适配相关的对象的属性包括高度属性和宽度属性、水平间隔、垂直间隔和文字大小;将动态界面代码所应用的显示设备的屏幕分辨率编写到动态界面代码中;在动态界面代码中编写布局方式对象的属性设置方法和与其对应的传入参数,以及UI元素对象的属性设置方法和与其对应的传入参数;
该方法还包括:为所述对象添加适配必要性属性。
上述方法中,所述解释运行平台运行动态界面代码,动态界面代码计算适配比率,并根据适配比率动态进行自动屏幕适配为:
解释运行平台根据动态界面代码中对象的适配必要性属性的值确定对象需要进行自动屏幕适配时,运行动态界面代码,动态界面代码获取UI元素的属性和动态界面代码所应用的显示设备的屏幕分辨率,并利用自身所在显示设备的屏幕分辨率除以动态界面代码所应用的显示设备的屏幕分辨率,得到适配比率;
动态界面代码获取布局方式对象的属性设置方法的传入参数和UI元素对象的属性设置方法的传入参数,利用所述适配比率分别乘以所述传入参数的值,完成布局方式对象的适配和UI元素对象的适配,将修改后的传入参数的值传入所述布局方式对象的属性设置方法和UI元素对象的属性设置方法,动态界面代码继续运行。
本发明还提供一种可跨屏运行应用的系统,该系统包括:代码生成单元、解释运行平台;其中,
代码生成单元,用于将应用的界面抽象为初始化界面代码和动态界面代码;
解释运行平台,用于运行初始化界面代码,所述初始化界面代码计算适配比率,并根据适配比率进行自动屏幕适配;运行动态界面代码,所述动态界面代码根据适配比率动态进行自动屏幕适配。
本发明还提供一种可跨屏运行应用的系统,该系统包括:代码生成单元、解释运行平台;其中,
代码生成单元,用于将应用的界面抽象为动态界面代码;
解释运行平台,用于运行动态界面代码,所述动态界面代码计算适配比率,并根据适配比率动态进行自动屏幕适配。
本发明提供的可跨屏运行应用的方法及系统,将应用的界面抽象为初始化界面代码和动态界面代码;解释运行平台运行初始化界面代码,初始化界面代码计算适配比率,并根据适配比率进行自动屏幕适配;解释运行平台运行动态界面代码,动态界面代码根据适配比率动态进行自动屏幕适配;或将应用的界面抽象为动态界面代码;解释运行平台运行动态界面代码,动态界面代码计算适配比率,并根据适配比率动态进行自动屏幕适配,能够降低开发人员在解决跨平台跨屏幕运行应用的问题时,编写实现代码的数量,只需要编写针对一套屏幕分辨率的代码即可,显示设备的解释运行平台针对该代码可以自动进行适配,实现在不同的网络平台上以及不同大小的屏幕的设备上较好的运行应用,同时降低了开发人员的工作量,节省人力物力。
附图说明
图1是本发明实现可跨屏运行应用的方法一的流程示意图;
图2是本发明实现可跨屏运行应用的方法二的流程示意图;
图3是本发明实现可跨屏运行应用的方法的实施例一的流程示意图;
图4是本发明实现可跨屏运行应用的方法的实施例二的流程示意图;
图5是本发明实现可跨屏运行应用的系统的结构示意图。
具体实施方式
本发明的基本思想是:将应用的界面抽象为初始化界面代码和动态界面代码;解释运行平台运行初始化界面代码,初始化界面代码计算适配比率,并根据适配比率进行自动屏幕适配;解释运行平台运行动态界面代码,动态界面代码根据适配比率动态进行自动屏幕适配;或将应用的界面抽象为动态界面代码;解释运行平台运行动态界面代码,动态界面代码计算适配比率,并根据适配比率动态进行自动屏幕适配。
下面通过附图及具体实施例对本发明再做进一步的详细说明。
本发明提供一种可跨屏运行应用的方法,图1是本发明实现可跨屏运行应用的方法一的流程示意图,如图1所示,该方法包括以下步骤:
步骤101,将应用的界面抽象为初始化界面代码和动态界面代码;
具体的,将需要在不同屏幕上运行的应用的界面抽象为初始化界面代码和动态界面代码,本实施例中,应用可以是新闻聚合、社交网站的客户端(人人网、开心网)、电视节目列表等;运行该初始化界面代码是用于初始化应用的基本的UI元素,设置应用的界面在屏幕上初始显示界面的大小;运行该动态界面代码是用于实现应用的功能,可以对应用的界面进行动态的修改;其中,初始化界面代码的编写方法包括基于标记语言的编写方法和基于面向对象的编程语言的编写方法,动态界面代码的编写方法都是基于面向对象的编程语言的编写方法;
基于标记语言的界面编写方法是指将应用的UI元素和界面布局方式抽象为标记语言中的标签,可以通过在标记语言中添加相应的标签完成UI元素的声明,并为标签添加相应的属性,以完成UI元素的初始化和其他特征的声明,本实施例中,标签中存在若干与屏幕自动适配相关的标签,该与屏幕自动适配相关的标签的属性可以包括UI元素的水平间隔属性和垂直间隔属性、高度属性和宽度属性、文字大小属性;为了更好的适应不同的编写代码的要求,可以为所有的标签添加适配必要性属性,用于表明标签对应的UI元素是否需要解释运行平台对其进行自动屏幕适配,该属性的值可以由开发人员根据需求设置;此外,还需要将初始化界面代码所应用的显示设备的屏幕分辨率编写到初始化界面代码中,编写方式既可以是将屏幕分辨率抽象为标签也可以直接将屏幕分辨率编写到初始化界面代码中;这里,用于通过将UI元素的标签放置于界面布局方式标签内部完成UI元素的布局排列;
基于面向对象的编程语言的编写方法是指将应用的UI元素和布局方式抽象为UI元素对象和布局方式对象,并为对象添加属性,为所有的UI元素对象和布局方式对象添加适配必要性属性;其中,与屏幕自动适配相关的对象的属性包括高度属性和宽度属性、水平间隔、垂直间隔和文字大小;同时,还需要在动态界面代码中编写布局方式对象的属性设置方法和与其对应的传入参数,以及UI元素对象的属性设置方法和与其对应的传入参数,通过获取该UI元素对象的属性设置方法的传入参数和布局方式对象的属性设置方法的传入参数,实现对布局中UI元素的属性进行修改。
步骤102,解释运行平台运行初始化界面代码,初始化界面代码计算适配比率,并根据适配比率进行自动屏幕适配;
具体的,本实施例中,应用的解释运行平台构建于各种网络平台及大小不同的屏幕的设备商,例如PC、手持移动设备或家庭电视等显示设备;解释运行平台可以识别应用中界面的相关代码,当需要在显示设备中使用应用时,解释运行平台根据标签的适配必要性属性的值确定标签是否需要进行自动屏幕适配,当需要进行自动屏幕适配时,解释运行平台运行步骤101中的初始化界面代码;
在初始化界面代码的运行过程中,初始化界面代码获取UI元素水平间隔属性和垂直间隔属性、UI元素的高度属性和宽度属性、文字大小属性,以及初始化界面代码所应用的显示设备的屏幕分辨率;初始化界面代码利用解释运行平台所在显示设备的屏幕分辨率除以初始化界面代码所应用的显示设备的屏幕分辨率,得到适配比率,将该适配比率保存在解释运行平台的内存中;利用该适配比率分别与获取的UI元素的高度属性和宽度属性、水平间隔属性和垂直间隔属性、文字大小属性的属性值相乘,完成标签的初始适配,从而得到在初始化界面代码经过运行后,解释运行平台所在的显示设备的屏幕上的初始显示界面的大小。
步骤103,解释运行平台运行动态界面代码,动态界面代码根据适配比率动态进行自动屏幕适配;
具体的,解释运行平台根据动态界面代码中对象的适配必要性属性的值确定对象是否需要进行自动屏幕适配,当需要进行自动屏幕适配时,解释运行平台运行步骤101中的动态界面代码;
在动态界面代码运行过程中,对于需要适配的布局方式对象,动态界面代码获取布局方式对象的属性设置方法的传入参数,对该传入参数进行修改,即从内存中获取已经计算出的适配比率,利用该适配比率乘以传入参数的值,实现对UI元素的水平间隔属性和垂直间隔属性的属性的值的修改,完成布局方式对象的适配;对于需要适配的UI元素对象,动态界面代码获取UI元素对象的属性设置方法的传入参数,对该传入参数进行修改,即利用获取的适配比率乘以传入参数的值,实现对UI元素的高度属性和宽度属性以及文字大小属性的属性的值的修改,完成UI元素对象的适配;动态界面代码将修改后的传入参数的值再传入对应的属性设置方法中,动态界面代码继续运行,从而实现界面在解释运行平台所在显示设备的屏幕上的动态自动屏幕适配。
本发明还提供一种可跨屏运行应用的方法,图2是本发明实现可跨屏运行应用的方法二的流程示意图,如图2所示,该方法包括以下步骤:
步骤201,将应用的界面抽象为动态界面代码;
具体的,将需要在不同屏幕上运行的应用的界面抽象为动态界面代码,本实施例中,应用可以是新闻聚合、社交网站的客户端(人人网、开心网)、电视界面列表等;运行该动态界面代码用于实现应用的功能,可以对应用的界面进行动态的修改;其中,动态界面代码的编写方法是基于面向对象的编程语言的编写方法;
基于面向对象的编程语言的编写方法是指将应用的UI元素和布局方式抽象为UI元素对象和布局方式对象,并为对象添加属性,为所有的UI元素对象和布局方式对象添加适配必要性属性;其中,与屏幕自动适配相关的对象的属性包括高度属性和宽度属性、水平间隔、垂直间隔和文字大小;同时,还需要在动态界面代码中编写布局方式对象的属性设置方法对应的传入参数,以及UI元素对象的属性设置方法和对应的传入参数,通过获取该UI元素对象的属性设置方法的传入参数和布局方式对象的属性设置方法的传入参数,实现对布局中UI元素的属性进行修改;此外,还需要将动态界面代码所应用的显示设备的屏幕分辨率编写到动态界面代码中,编写方式既可以是将屏幕分辨率抽象为屏幕分辨率对象,也可以直接将屏幕分辨率编写到动态界面代码中。
步骤202,解释运行平台运行动态界面代码,动态界面代码计算适配比率,并根据适配比率动态进行自动屏幕适配;
具体的,解释运行平台根据动态界面代码中对象的适配必要性属性的值确定对象是否需要进行自动屏幕适配,当需要进行自动屏幕适配时,解释运行平台运行步骤201中的动态界面代码;
在动态界面代码运行过程中,对于需要适配的布局方式对象,动态界面代码获取布局方式对象的属性设置方法的传入参数,对该传入参数进行修改,即从动态界面代码中获取该动态界面代码所应用的显示设备的屏幕分辨率,利用自身所在显示设备的屏幕分辨率除以动态界面代码所应用的显示设备的屏幕分辨率,得到适配比率,利用该适配比率乘以传入参数的值,实现对UI元素的水平间隔属性和垂直间隔属性的属性的值的修改,完成布局方式对象的适配;
对于需要适配的UI元素对象,动态界面代码获取UI元素对象的属性设置方法的传入参数,对该传入参数进行修改,即利用计算出的适配比率乘以传入参数的值,实现对UI元素的高度属性和宽度属性以及文字大小属性的属性的值的修改,完成UI元素对象的适配;
动态界面代码将修改后的传入参数的值再传入对应的属性设置方法中,解释运行平台继续运行动态界面代码,从而实现界面在解释运行平台所在显示设备的屏幕上的动态自动屏幕适配。
实施例一
图3是本发明实现可跨屏运行应用的方法的实施例一的流程示意图,是将应用的界面抽象为基于标记语言编写的初始化界面代码,解释运行平台运行初始化界面代码,计算适配比率,并根据适配比率进行自动屏幕适配的实现方法,如图3所示,该方法包括以下步骤:
步骤301,将应用的界面抽象为基于标记语言编写的初始化界面代码;
具体的,本实施例中,初始化界面代码的编写方法是基于标记语言的编写方法,初始化界面代码如下所示:
<Application
layout_height=″640px″
layout_width=″360px″
>
</Application>
<FlowLayoutid=″flow1″
orientation=″vertical″
horizontal_gap=″5px″
vertical_gap=″10px″
isadjust=″true″
>
<TextViewid=″txt1″
layout_width=″fill_parent″
layout_height=″60px″
text=″helloworld″
text_size=″20px″
isadjust=″true″
></TextView>
<EditTextid=″edt1″
layout_width=″fill_parent″
layout_height=″40px″
text=″″
text_size=″20px″
isadjust=″false″
></EditText>
<Buttonid=″bto1″
layout_width=″40px″
Layout_height=″wrap_content″
text=″go″
text_size=″20px″
isadjust=″false″
></Button>
</FlowLayout>
上述代码片段为基于标记语言的编写方式的初始化界面代码的一部分,该初始化界面代码所应用的初始化界面的高度是640像素,宽度是360像素;布局方式是采用FlowLayout方式,UI元素间水平间隔是5像素,垂直间隔是10像素;界面内有三个UI元素,即文本显示框、文本编辑框和按钮,UI元素的标签分别有宽度、高度、文字内容和文字大小属性,其中宽度、高度和文字大小属性是与屏幕适配相关的属性;各标签都有isadjust属性,该属性的属性值表明该标签中与屏幕适配相关的属性值是否需要进行自动屏幕适配。
步骤302,解释运行平台运行初始化界面代码,初始化界面代码计算适配比率,并根据适配比率进行自动屏幕适配;
具体的,根据上述代码可知,显示设备的解释运行平台运行初始化界面代码后获取到的应用的界面高度为640像素,宽度为360像素,本实施例中,解释运行平台所在的显示设备的屏幕高度为800像素,宽度为1280像素;
自动屏幕适配的适配方式可以是按宽度适配、按高度适配或全屏适配,本实施例中,自动屏幕适配的适配方式为按高度适配,则适配比率为800除以600,即1.25;
解释运行平台对isadjust属性为ture的标签内的其他属性值进行相应的修改,对于<FlowLayout>标签,修改其中的horizontal_gap属性值为5px*1.25=6px(四舍五入取整数),修改其中的vertical_gap属性值为10px*1.25=13px;对于<TextView>标签,修改其中的layout_height属性值为60px*1.25=75px,修改其中的text_size属性值为20px*1.25=25px,对属性layout_width,其原来的属性值表示填满父级元素,可以维持不变。
经过上述修改后,应用的初始化界面将适合在高度为800像素,宽度为1280的显示设备上显示,且用户体验不变。
实施例二
图4是本发明实现可跨屏运行应用的方法的实施例二的流程示意图,是将应用的界面抽象为基于面向对象的编程语言的动态界面代码,解释运行平台运行动态界面代码,根据适配比率进行自动屏幕适配的实现方法,如图4所示,该方法包括以下步骤:
步骤401,将应用的界面抽象为基于面向对象编写的动态界面代码;
具体的,本实施例中,动态界面代码的编写方法是基于面向对象的编写方法,动态界面代码如下所示:
FlowLayoutFlow1=(FlowLayout)findViewById(″flow1″);
TextViewtxt1=(TextView)FindViewById(″txt1″);
EditTextedt1=(EditText)findViewById(″edt1″);
Buttonbto1=(Button)findViewById(″bto1″);
flow1.setHorizontalGap(″10px″);
txt1.setTextSize(″30px″);
edt1.setTextSize(″30px″);
bto.setIsadjust(″true″);
bto1.setWidth(″50px″);
上述代码片段为基于面向对象的编程语言编写的动态界面代码的一部分,其中的对象与上一实例中的初始化界面代码中的UI元素的标签相对应,本实施例中,是通过界面对象内的属性设置方法来修改界面的呈现效果。
步骤402,解释运行平台运行动态界面代码,动态界面代码根据适配比率进行自动屏幕适配;
具体的,根据上述实施例可知,解释运行平台继续使用初始化界面的自动屏幕适配过程中得到的适配比率1.25;
解释运行平台对isadjust属性为ture的对象的属性设置方法的调用进行监控,并对其传入参数的值进行相应的修改,对于FlowLayout对象,其中的flow1的属性设置方法setHorizontalGap()的最终传入参数的值为″10px″*1.25=″13px″(四舍五入取整数),对于TextView对象,其中的txt1的属性设置方法setTxetSize()的最终传入参数的值为″30px″*1.25=″38px″,对于Button对象,其中bto1的属性设置方法setWidth()的最终传入参数的值为″50px″*1.25=″63px″。
经过上述修改后,应用的界面将适合在高度为800像素,宽度为1280的显示设备上显示,且用户体验不变。
为实现上述方法,本发明还提供一种可跨屏运行应用的系统,图5是本发明实现可跨屏运行应用的系统的结构示意图,如图5所示,该系统包括:代码生成单元51、解释运行平台52;其中,
代码生成单元51,用于将应用的界面抽象为初始化界面代码和动态界面代码;
解释运行平台52,用于运行初始化界面代码,所述初始化界面代码计算适配比率,并根据适配比率进行自动屏幕适配;运行动态界面代码,所述动态界面代码根据适配比率动态进行自动屏幕适配。
所述将应用的界面抽象为初始化界面代码为:将应用的UI元素和界面布局方式抽象为标记语言中的标签,并为所述标签添加属性,其中,与屏幕自动适配相关的标签的属性包括UI元素的水平间隔属性和垂直间隔属性、高度属性和宽度属性、文字大小属性;将初始化界面代码所应用的显示设备的屏幕分辨率编写到初始化界面代码中;为所述标签添加适配必要性属性。
所述将应用的界面抽象为初始化界面代码和动态界面代码为:将应用的UI元素和布局方式抽象为UI元素对象和布局方式对象,并为所述对象添加属性,其中,与屏幕自动适配相关的对象的属性包括高度属性和宽度属性、水平间隔、垂直间隔和文字大小;在动态界面代码中编写布局方式对象的属性设置方法和与其对应的传入参数,以及UI元素对象的属性设置方法和与其对应的传入参数;为所述对象添加适配必要性属性。
所述解释运行平台运行初始化界面代码,初始化界面代码计算适配比率,并根据适配比率进行自动屏幕适配为:显示设备的解释运行平台根据标签的适配必要性属性的值确定标签需要进行自动屏幕适配时,运行所述初始化界面代码,初始化界面代码获取UI元素的属性和初始化界面代码所应用的显示设备的屏幕分辨率,并利用解释运行平台所在显示设备的屏幕分辨率除以初始化界面代码所应用的显示设备的屏幕分辨率,得到适配比率;利用该适配比率分别与获取的UI元素的属性的属性值相乘,完成标签的初始适配。
所述解释运行平台运行动态界面代码,动态界面代码根据适配比率动态进行自动屏幕适配为:解释运行平台根据动态界面代码中对象的适配必要性属性的值确定对象需要进行自动屏幕适配时,运行动态界面代码,动态界面代码获取布局方式对象的属性设置方法的传入参数和UI元素对象的属性设置方法的传入参数,利用所述适配比率分别乘以所述传入参数的值,完成布局方式对象的适配和UI元素对象的适配,将修改后的传入参数的值传入所述布局方式对象的属性设置方法和UI元素对象的属性设置方法,动态界面代码继续运行。
为实现上述方法,本发明还提供一种可跨屏运行应用的系统,其特征在于,该系统包括:代码生成单元51、解释运行平台52;其中,
代码生成单元51,用于将应用的界面抽象为动态界面代码;
解释运行平台52,用于运行动态界面代码,所述动态界面代码计算适配比率,并根据适配比率动态进行自动屏幕适配。
所述将应用的界面抽象为动态界面代码为:将应用的UI元素和布局方式抽象为UI元素对象和布局方式对象,并为所述对象添加属性,其中,所述与屏幕自动适配相关的对象的属性包括高度属性和宽度属性、水平间隔、垂直间隔和文字大小;将动态界面代码所应用的显示设备的屏幕分辨率编写到动态界面代码中;在动态界面代码中编写布局方式对象的属性设置方法和与其对应的传入参数,以及UI元素对象的属性设置方法和与其对应的传入参数;为所述对象添加适配必要性属性。
所述解释运行平台运行动态界面代码,动态界面代码计算适配比率,并根据适配比率动态进行自动屏幕适配为:解释运行平台根据动态界面代码中对象的适配必要性属性的值确定对象需要进行自动屏幕适配时,运行动态界面代码,动态界面代码获取UI元素的属性和动态界面代码所应用的显示设备的屏幕分辨率,并利用自身所在显示设备的屏幕分辨率除以动态界面代码所应用的显示设备的屏幕分辨率,得到适配比率;动态界面代码获取布局方式对象的属性设置方法的传入参数和UI元素对象的属性设置方法的传入参数,利用所述适配比率分别乘以所述传入参数的值,完成布局方式对象的适配和UI元素对象的适配,将修改后的传入参数的值传入所述布局方式对象的属性设置方法和UI元素对象的属性设置方法,动态界面代码继续运行。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种可跨屏运行应用的方法,其特征在于,该方法包括:
将应用的界面抽象为初始化界面代码和动态界面代码;
解释运行平台运行初始化界面代码,初始化界面代码计算适配比率,并根据适配比率进行自动屏幕适配;
解释运行平台运行动态界面代码,动态界面代码根据适配比率动态进行自动屏幕适配;
其中,所述自动屏幕适配的适配方式包括:按宽度适配、按高度适配、全屏适配;
所述将应用的界面抽象为初始化界面代码包括:将应用的UI元素和界面布局方式抽象为标记语言中的标签,并为所述标签添加属性,并为所述标签添加适配必要性属性;
或者,将应用的UI元素和布局方式抽象为UI元素对象和布局方式对象,并为所述对象添加属性,并为所述对象添加适配必要性属性;
所述将应用的界面抽象为动态界面代码包括:
将应用的UI元素和布局方式抽象为UI元素对象和布局方式对象,并为所述对象添加属性,并为所述对象添加适配必要性属性。
2.根据权利要求1所述的方法,其特征在于,与屏幕自动适配相关的标签的属性包括UI元素的水平间隔属性和垂直间隔属性、高度属性和宽度属性、文字大小属性;
所述方法还包括:将初始化界面代码所应用的显示设备的屏幕分辨率编写到初始化界面代码中。
3.根据权利要求1所述的方法,其特征在于,与屏幕自动适配相关的对象的属性包括高度属性和宽度属性、水平间隔、垂直间隔和文字大小;
所述方法还包括:在动态界面代码中编写布局方式对象的属性设置方法和与其对应的传入参数,以及UI元素对象的属性设置方法和与其对应的传入参数。
4.根据权利要求2所述的方法,其特征在于,所述解释运行平台运行初始化界面代码,初始化界面代码计算适配比率,并根据适配比率进行自动屏幕适配为:
显示设备的解释运行平台根据标签的适配必要性属性的值确定标签需要进行自动屏幕适配时,运行所述初始化界面代码,初始化界面代码获取UI元素的属性和初始化界面代码所应用的显示设备的屏幕分辨率,并利用解释运行平台所在显示设备的屏幕分辨率除以初始化界面代码所应用的显示设备的屏幕分辨率,得到适配比率;利用该适配比率分别与获取的UI元素的属性的属性值相乘,完成标签的初始适配。
5.根据权利要求3所述的方法,其特征在于,所述解释运行平台运行动态界面代码,动态界面代码根据适配比率动态进行自动屏幕适配为:
解释运行平台根据动态界面代码中对象的适配必要性属性的值确定对象需要进行自动屏幕适配时,运行动态界面代码,动态界面代码获取布局方式对象的属性设置方法的传入参数和UI元素对象的属性设置方法的传入参数,利用所述适配比率分别乘以所述传入参数的值,完成布局方式对象的适配和UI元素对象的适配,将修改后的传入参数的值传入所述布局方式对象的属性设置方法和UI元素对象的属性设置方法,动态界面代码继续运行。
6.一种可跨屏运行应用的方法,其特征在于,该方法包括;
将应用的界面抽象为动态界面代码;
解释运行平台运行动态界面代码,动态界面代码计算适配比率,并根据适配比率动态进行自动屏幕适配;
其中,所述自动屏幕适配的适配方式包括:按宽度适配、按高度适配、全屏适配;
所述将应用的界面抽象为动态界面代码包括:
将应用的UI元素和布局方式抽象为UI元素对象和布局方式对象,并为所述对象添加属性,并为所述对象添加适配必要性属性。
7.根据权利要求6所述的方法,其特征在于,与屏幕自动适配相关的对象的属性包括高度属性和宽度属性、水平间隔、垂直间隔和文字大小;
所述方法还包括:将动态界面代码所应用的显示设备的屏幕分辨率编写到动态界面代码中;在动态界面代码中编写布局方式对象的属性设置方法和与其对应的传入参数,以及UI元素对象的属性设置方法和与其对应的传入参数。
8.根据权利要求7所述的方法,其特征在于,所述解释运行平台运行动态界面代码,动态界面代码计算适配比率,并根据适配比率动态进行自动屏幕适配为:
解释运行平台根据动态界面代码中对象的适配必要性属性的值确定对象需要进行自动屏幕适配时,运行动态界面代码,动态界面代码获取UI元素对象的属性和动态界面代码所应用的显示设备的屏幕分辨率,并利用自身所在显示设备的屏幕分辨率除以动态界面代码所应用的显示设备的屏幕分辨率,得到适配比率;
动态界面代码获取布局方式对象的属性设置方法的传入参数和UI元素对象的属性设置方法的传入参数,利用所述适配比率分别乘以所述传入参数的值,完成布局方式对象的适配和UI元素对象的适配,将修改后的传入参数的值传入所述布局方式对象的属性设置方法和UI元素对象的属性设置方法,动态界面代码继续运行。
9.一种可跨屏运行应用的系统,其特征在于,该系统包括:代码生成单元、解释运行平台;其中,
代码生成单元,用于将应用的界面抽象为初始化界面代码和动态界面代码;
解释运行平台,用于运行初始化界面代码,所述初始化界面代码计算适配比率,并根据适配比率进行自动屏幕适配;运行动态界面代码,所述动态界面代码根据适配比率动态进行自动屏幕适配;
其中,所述自动屏幕适配的适配方式包括:按宽度适配、按高度适配、全屏适配;
所述代码生成单元,具体用于将应用的UI元素和界面布局方式抽象为标记语言中的标签,并为所述标签添加属性,并为所述标签添加适配必要性属性;
或者,将应用的UI元素和布局方式抽象为UI元素对象和布局方式对象,并为所述对象添加属性,并为所述对象添加适配必要性属性;
所述代码生成单元,还用于将应用的UI元素和布局方式抽象为UI元素对象和布局方式对象,并为所述对象添加属性,并为所述对象添加适配必要性属性。
10.一种可跨屏运行应用的系统,其特征在于,该系统包括:代码生成单元、解释运行平台;其中,
代码生成单元,用于将应用的界面抽象为动态界面代码;
解释运行平台,用于运行动态界面代码,所述动态界面代码计算适配比率,并根据适配比率动态进行自动屏幕适配;
其中,所述自动屏幕适配的适配方式包括:按宽度适配、按高度适配、全屏适配;
所述代码生成单元,具体用于将应用的UI元素和布局方式抽象为UI元素对象和布局方式对象,并为所述对象添加属性,并为所述对象添加适配必要性属性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110033467.2A CN102622217B (zh) | 2011-01-30 | 2011-01-30 | 一种跨屏运行应用的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110033467.2A CN102622217B (zh) | 2011-01-30 | 2011-01-30 | 一种跨屏运行应用的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102622217A CN102622217A (zh) | 2012-08-01 |
CN102622217B true CN102622217B (zh) | 2016-03-30 |
Family
ID=46562148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110033467.2A Expired - Fee Related CN102622217B (zh) | 2011-01-30 | 2011-01-30 | 一种跨屏运行应用的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102622217B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104423830B (zh) * | 2013-09-11 | 2018-03-09 | 富泰华工业(深圳)有限公司 | 具有动态拼图界面的电子装置及更新方法与系统 |
CN104639969A (zh) * | 2013-11-12 | 2015-05-20 | 中兴通讯股份有限公司 | 一种页面全屏显示方法和装置 |
CN104793962B (zh) * | 2015-05-11 | 2017-10-17 | 四川天邑康和通信股份有限公司 | 基于玻璃板技术实现遗留Web UI端的快速移植的方法 |
CN105045573B (zh) * | 2015-06-24 | 2018-03-23 | 国电南京自动化股份有限公司 | 基于web跨屏技术的光伏电站监测及调试软件建立方法 |
CN105573764B (zh) * | 2015-12-24 | 2019-03-22 | 北京大学 | 一种面向智能手表的Android应用重构方法 |
CN108363606A (zh) * | 2018-03-15 | 2018-08-03 | 上海哔哩哔哩科技有限公司 | 闪屏显示方法、装置及计算机可读存储介质 |
CN110990009A (zh) * | 2019-11-29 | 2020-04-10 | 湖南快乐阳光互动娱乐传媒有限公司 | Android-UI不同屏幕尺寸的适配方法及Android应用开发方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1477544A (zh) * | 2002-08-22 | 2004-02-25 | 联想(北京)有限公司 | 低分辨率显示设备及其控制浏览器显示网页的方法 |
CN101238427A (zh) * | 2005-08-02 | 2008-08-06 | 索尼株式会社 | 基于网络的图形用户界面的动态大小调整的系统和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NO331338B1 (no) * | 2009-06-24 | 2011-11-28 | Cisco Systems Int Sarl | Fremgangsmate og anordning for endring av en videokonferanse-layout |
-
2011
- 2011-01-30 CN CN201110033467.2A patent/CN102622217B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1477544A (zh) * | 2002-08-22 | 2004-02-25 | 联想(北京)有限公司 | 低分辨率显示设备及其控制浏览器显示网页的方法 |
CN101238427A (zh) * | 2005-08-02 | 2008-08-06 | 索尼株式会社 | 基于网络的图形用户界面的动态大小调整的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102622217A (zh) | 2012-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102622217B (zh) | 一种跨屏运行应用的方法及系统 | |
CN102662616B (zh) | 用于移动终端的屏幕图形自适应方法及系统 | |
CN102209111B (zh) | 云计算移动网络终端设备开放性跨平台系统 | |
CN102279884B (zh) | 基于Web页面进行数据采集和展现的方法、系统及Web服务器 | |
CN105955888B (zh) | 一种页面调试预览方法及系统 | |
KR101416089B1 (ko) | 웹 어플리케이션 저작을 위한 통합 플랫폼 및 그 저작 방법 | |
CN106293743A (zh) | 一种移动建模系统及构建移动应用并实现跨平台发布的方法 | |
CN104484189A (zh) | 一种应用界面的构建及设计方法 | |
CN103533428A (zh) | 将智能终端网页视频推送到电视播放的方法及智能终端 | |
CN103312814B (zh) | 云管理平台和虚拟机终端用户间vnc隐通道的建立方法 | |
CN104866327A (zh) | 一种php开发方法及框架 | |
CN105159677A (zh) | 终端用户界面的受控显示方法及装置 | |
CN104239063A (zh) | 一种网页浏览器及通过网页浏览器调用本地应用程序的方法 | |
CN102855315A (zh) | 一种基于html5的集群网络拓扑展现方法 | |
CN106293760A (zh) | 一种epg的视图动态布局系统及其方法 | |
CN105335132A (zh) | 一种自定义应用程序功能的方法、装置以及系统 | |
CN102799477A (zh) | 资源访问方法及装置 | |
CN104954894A (zh) | 一种视频流量引导方法、装置及一种电子设备 | |
CN111045668A (zh) | 一种跨平台的移动端系统开发方法及装置 | |
CN108268260A (zh) | 一种基于一体化支撑技术的快速微应用组装方法 | |
CN106911937B (zh) | 一种直播中礼物横幅背景色的配置方法及系统 | |
CN105138399A (zh) | 跨平台移动Web应用运行引擎 | |
CN105847319A (zh) | 一种移动终端网络请求方法及系统 | |
CN103942037A (zh) | 一种移动设备的主题替换的方法和设备 | |
CN104834715A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160330 Termination date: 20190130 |
|
CF01 | Termination of patent right due to non-payment of annual fee |