发明内容
为解决上述问题,本发明解决的技术问题在于提供了一种基于Android的动态布局方法及系统,以更好地在显示终端上进行显示。
本发明提供了一种基于Android的动态布局方法,包括,
远程管理平台获取显示终端的显示单元的属性;
所述远程管理平台根据所述显示单元的属性对显示单元进行区域划分,生成布局配置文件,并将所述布局配置文件发送至显示终端;
所述显示终端对所述布局配置文件进行解析;
所述显示终端将从布局配置文件中解析到的数据进行封装处理;
所述显示终端对封装后的数据进行再次解析,获得布局界面;
对所述布局界面进行显示。
上述的基于Android的动态布局方法中,其中,在所述对布局配置文件进行解析后,还包括,根据解析出的布局配置文件内容,向存储服务器获取对应的素材内容。
上述的基于Android的动态布局方法中,其中,所述根据显示单元的属性对显示单元进行区域划分包括,根据获取的显示单元的属性,将显示单元划分为至少两个显示区域,使不同的显示区域对应于不同的控件,所述不同的显示区域分别用于显示不同的内容。
上述的基于Android的动态布局方法中,其中,还包括:对显示单元的布局界面进行实时监控与调整,该步骤具体包括:
开启控件相关线程,进入事件处理和监理状态;
当控件数量和/或现有控件的布局发生变化时,调整或生成新的布局界面。
上述的基于Android的动态布局方法中,其中,还包括对显示单元的布局界面进行实时监控与调整,包括,
判断是否有添加新控件,是则获取新控件的布局参数,通过布局管理器在显示单元上对布局界面进行调整;
判断是否现有控件的布局发生变化,是则获取变化后现有控件的布局参数,在显示单元上,重新生成布局界面;
判断是否删除现有控件,是则释放被删除控件的资源,并通过布局管理器在显示单元上对布局界面进行调整。
本发明还提供了一种基于Android的动态布局系统,包括远程管理平台、显示终端,其中:,
所述远程管理平台包括属性获取单元、区域划分单元;所述显示终端包括解析单元、封装处理单元、布局管理器,显示单元;
所述属性获取单元,用于获取所述显示单元的属性;
所述区域划分单元,用于对所述显示单元进行区域划分,并生成布局配置文件,将所述布局配置文件发送至所述显示终端;
所述解析单元,用于对所述布局配置文件进行解析;
所述封装处理单元,用于将从布局配置文件中解析到的数据进行封装处理;
所述布局管理器,用于对封装后的数据进行解析,获得布局界面;
所述显示单元,用于对所述布局界面进行显示。
进一步地,所述的基于Android的动态布局系统,还包括:存储服务器,所述存储服务器包括存储单元以及信息处理单元;
所述存储单元,用于存储素材内容;
所述信息处理单元,用于根据所述解析单元所解析的数据信息获取与所述布局配置文件相对应的素材内容,并将所获取的素材内容发送给所述显示终端。
上述的基于Android的动态布局系统,其中,所述远程管理平台还包括控件配置单元,所述控件配置单元用于根据所述区域划分单元对所述显示单元的区域划分情况,对所划分完成的各个区域进行控件配置。
上述的基于Android的动态布局系统,其中,所述远程管理平台还包括监控管理单元,所述监控管理单元用于实时对所述布局界面进行监控和调整,在控件数量和/或现有控件的布局发生变化时,调整或生成新的布局界面。
上述的基于Android的动态布局系统,其中,
当有新控件加入时,所述布局管理器根据所述监控管理单元所获取的新控件布局参数,在所述显示单元中调整布局界面;
当现有控件的布局发生变化时,所述布局管理器根据所述区域划分模块生成变化后的布局配置文件,在所述显示单元中重新生成布局界面;
当删除现有控件时,所述布局管理器根据所述监控管理单元所提供的被删除的控件布局参数,在所述显示单元中调整布局界面。
本发明的技术方案的有益效果在于:通过动态布局的方法对不同显示终端的显示内容形成不同的布局,并能随时改变布局;在同一显示终端能根据显示内容的不同,能动态改变显示界面上控件的个数、位置和大小;提供远程布局多个显示终端的系统,用户需要什么样的界面布局,只要在远程管理平台上通过拖拽的方式指定布局,然后通过自定义的布局解析方式来解析;管理人员可以根据显示终端设备配置屏幕参数和展示内容编排不同节目内容,满足了用户对显示效果的需求,进一步地,还可以根据需要显示的内容和设备终端的屏幕属性来动态布局和动态管理,管理方便有效。
具体实施方式
以下结合附图与实施例对本发明的技术方案作详细说明。
如图1所示,是本发明第一实施例流程图,提供了一种基于Android的动态布局方法,包括:
步骤S101,远程管理平台获取显示终端的显示单元的属性;
为了使布局能在显示单元上显示,布局就必须要根据显示单元的情况进行,需要获取显示单元的各种属性,基本属性包括如显示单元的分辨率、显示高度和宽度、宽高比例、横竖屏和名称等信息。
步骤S102,远程管理平台根据显示单元的属性对显示单元进行区域划分,并生成布局配置文件,将布局配置文件发送至显示终端;
根据获取的显示单元的属性,将显示单元划分为多个不同的显示区域,使不同的显示区域对应于不同的控件,不同的控件中分别用于显示不同的内容。
作为一个示例,所述划分区域的过程是:显示单元的坐标体系结构如图2所示,原点在左上角,横轴为X坐标点,竖轴Y坐标点,坐标点的大小对应显示单元像素点,先在显示单元拽出一个矩形框,在显示单元上调整矩形框大小、坐标和宽高,划分的情况如图3所示,选择矩形框区域需要放置的控件类型,控件是指单独完成特定功能的一个模块,例如视频控件就是指配置完播放列表和播放模式后就能不受其他控件影响的输出视频到指定的显示单元区域,然后配置控件的显示层次和需要的额外属性。重复上述动作,直到完成划分。确认后会将区域划分情况生成布局配置文件保存,布局配置文件包括INI配置文件和XML配置文件。如果在本显示终端进行划分会生成XML配置文件,反之如果远程对显示单元进行划分则会生成INI配置文件或XML配置文件。
步骤S103,显示终端对布局配置文件进行解析,根据解析出的内容,在需要时向存储服务器获取对应的素材内容;
该步骤中,如果不需要显示素材内容,则可以不选择向存储服务器获取对应的素材内容。
作为一个示例,通过对布局配置文件的解析,重新获得显示单元上控件的信息。
具体地,在对素材内容进行获取时,可以采用定时的方式进行自动获取,也可以人工的选择获取。
步骤S104,显示终端将从布局配置文件中解析到的数据进行封装处理;
把布局配置文件中的文体信息内容封装成Java布局类对象,这个过程的本质就是把布局配置文件中的文本信息封装为java语言中的信息,这个对象中将会保存不同控件的个数,每个控件的位置、大小和额外信息。
在本发明的其它实施例中,所封装的布局类对象也可以由其它编程语言实现。
步骤105,显示终端对封装后的数据进行再次解析,获得布局界面;
在本发明的实施例中,在Java布局类对象封装完毕后,用Absolutely布局类型赋值于布局管理器LayoutManger,根据控件名称、显示的层次、控件的坐标点、控件宽高和控件的额外信息向显示单元装载各个控件,所有的控件经过布局管理器的装载后调用系统接口将各个控件展示出来的界面显示到显示单元上。为了丰富显示内容和更加丰富的显示效果,控件可以叠加显示,比如时间的显示就可以叠加显示在任何一个区域,一般的,显示在最下层的控件先装载到布局管理器,或者通过系统提供的setZOrderOnTop方法控制窗口的显示层次,所有的设置项设置完成后启动相应的线程来监控各个不同类型的控件的正常工作。
步骤S106,对布局界面进行显示。
对于在显示单元上的布局,显示单元上不同的控件正常显示内容,如果在某一时刻需要添加一个控件来丰富显示内容和效果,就需要在先调整现有控件的显示区域的大小或对现有控件删除,然后划分出一个新控件的显示区域。调整原有的布局首先需要获取原有控件的布局参数对象,然后给这个控件的布局参数对象重新赋值坐标值和宽高,最后再把布局参数重新赋值给控件。
在本发明的一个优选的实施例中,所添加的控件可以是临时的控件,其可以覆盖于现有控件之上进行显示,对应则不用再次执行对现有控件进行删除以及区域划分等各种已完成的处理动作。
如图4所示,是本发明第二实施例流程图,提供了一种基于Android的动态布局调整的方法,包括,
步骤S401,在布局完成后,此时开启控件相关线程,进入事件处理和监理状态;
步骤S402,当控件数量和/或现有控件的布局发生变化时,调整或生成新的布局界面。
作为一个示例,判断是否有添加新控件,是则获取新控件的布局参数,通过布局管理器在显示单元上对布局界面进行调整;在调整的过程中,根据原有布局界面的情况,自适应对新添加的控件进行显示。
作为一个示例,判断是否现有控件的布局发生变化,是则获取变化后现有控件的布局参数,在显示单元上,重新生成布局界面;此示例中,应当理解为现有控件的数量并未发生变化,但是其所对应的显示区域发生一定的变化时,则需要根据变化后的布局参数,重新生成布局界面。
作为一个示例,判断是否删除现有控件,是则释放被删除控件的资源,并通过布局管理器在显示单元上对布局界面进行调整。在此示例中,由于现有控件的数量发生变化,并且无其他新控件加入的时候,则将选择删除的控件资源进行释放,在该过程中并不影响到其它现有控件在显示单元上的显示。
作为一个示例,当删除现有控件且有新控件进行加入的时候,则可以根据所删除的现有控件的布局参数,选择将新控件对应加入所删除的现有控件相关的显示区域中。也可以按照上述其它示例中所描述的情况进行调整。
通过本发明所提供的基于Android的动态布局方法,管理人员可以根据显示终端设备配置屏幕参数和展示内容编排不同节目内容,满足了用户对显示效果的需求,进一步地,还可以根据需要显示的内容和设备终端的屏幕属性来动态布局和动态管理,管理方便有效。
如图5所示,是本发明第三实施例结构图,提供了一种基于Android的动态布局系统,包括有远程管理平台50、显示终端51和存储服务器52,远程管理平台由一台或数台远程管理PC端构成,存储服务器、显示终端及远程管理平台网络通讯连接,远程管理平台操作控制至少一个显示终端51。
远程管理平台50包括属性获取单元501、区域划分单元502,控件配置的那样503和监控管理单元504;显示终端51包括解析单元511、封装处理单元512、布局管理器513和显示单元514;存储服务器52包括信息处理单元521和存储单元522。
属性获取单元501,用于获取显示终端51的显示单元514的属性;显示单元514的属性具体包括显示单元的高度、宽度和宽高比例等属性信息;作为一个示例,用于获取显示终端51在接入到远程管理平台50注册时,显示终端51向远程管理平台50提交的每个显示单元514的属性信息。
区域划分单元502,用于对显示单元514进行区域划分,并生成布局配置文件,将布局配置文件发送至显示终端51;具体地,根据获取的显示单元514的属性,将显示单元514划分为多个不同的显示区域,使不同的显示区域对应于不同的控件,不同的控件中分别用于显示不同的内容;针对每个显示终端的显示单元514属性,进行合理的布局,首先根据显示终端51的显示单元属性在远程管理平台50上及建立一个模拟区域,对应于显示终端的显示单元,参照上述实施例的区域划分步骤,在模拟区域内进行区域划分,直到布局完成,生成布局配置文件,可以为INI配置文件或者XML配置文件中的一种。将布局配置文件发送至显示终端51包括,远程管理平台50提交了显示布局确认命令后,布局配置文件会通过网络发送到显示终端51,显示终端51接收后会把布局配置文件存放于本地,这个过程可能不只是一个布局配置文件,如果是多个,显示终端51会根据业务需求解析对应的布局配置文件。
控制配置单元503,用于根据区域划分单元502对显示单元514的区域划分情况,对所划分完成的各个区域进行控件配置。
监控管理单元504,用于实时对布局界面进行监控和调整,在控件数量和/或现有控件的布局发生变化时,调整或生成新的布局界面。
具体地,当有新控件加入时,布局管理器513根据监控管理单元504所获取的新控件布局参数,在显示单元514中调整布局界面;在调整的过程中,根据原有布局界面的情况,自适应对新添加的控件进行显示。
当现有控件的布局发生变化时,布局管理器513根据区域划分模块502生成变化后的布局配置文件,在显示单元514中重新生成布局界面;
当删除现有控件时,布局管理器513根据监控管理单元504所提供的被删除的控件布局参数,在显示单元514中调整布局界面。
解析单元511,用于对布局配置文件进行解析,根据解析出的内容,在需要时向存储服务器52获取对应的素材内容;具体地,解析单元511对该布局配置文件进行解析,得到需要的素材内容并向存储服务器52进行获取,在存储服务器52中存储单元522保存有所需的全部素材内容,在本实施例中,在对素材内容进行获取的时候可以采用定时的方式进行自动获取,也可以人为的选择获取。
封装处理单元512,用于将从布局配置文件中解析到的数据进行封装处理;具体地,把布局配置文件中的内容封装成为java布局类对象,这个过程的本质就是把布局配置文件中的文本信息封装为java语言中的信息,这个对象中将会保存不同控件的个数,每个控件的位置、大小和额外信息。在本发明的其它实施例中,所封装的布局类对象也可以由其它编程语言实现。
布局管理器513,用于对封装后的数据进行解析,获得布局界面。
在本发明的实施例中,具体地,在Java布局类对象封装完毕后,用Absolutely布局类型赋值于布局管理器LayoutManger,根据控件名称、显示的层次、控件的坐标点、控件宽高和控件的额外信息向显示单元装载各个控件,所有的控件经过布局管理器513的装载后调用系统接口将各个控件展示出来的界面显示到显示终端51的显示单元514上。
显示单元514,用于对布局界面进行显示。
存储单元522用于存储布局配置文件解析内容对应的素材内容;
信息处理单元521用于根据解析单元511所解析的数据信息获取与布局配置文件相对应的素材内容,并将所获取的素材内容发送给显示终端51。
在本发明的另外一个实施例中,存储服务器也可以设置于远程管理平台中。
通过本发明所提供的基于Android的动态布局系统,管理人员可以根据显示终端设备配置屏幕参数和展示内容编排不同节目内容,满足了用户对显示效果的需求,进一步地,还可以根据需要显示的内容和设备终端的屏幕属性来动态布局和动态管理,管理方便有效。
以上的描述仅仅涉及本发明的一些具体实施方式,任何本领域的技术人员基于本发明的精神所做的替换或改进均应为本发明的保护范围所涵盖,本发明的保护范围应以权利要求书为准。