视图缩放处理方法和视图缩放处理装置的制造方法

文档序号:9375057阅读:409来源:国知局
视图缩放处理方法和视图缩放处理装置的制造方法
【技术领域】
[0001]本发明涉及计算技术领域,具体而言,涉及一种视图缩放处理方法和一种视图缩放处理装置。
【背景技术】
[0002]安卓系统(Android)的视图包括布局视图(直接继承ViewGroup)和直接视图(直接继承View)。目前Android中三个常用的布局视图为Framelayout, Linearlayout,Relativelayout。在终端阅读的领域,多数是以图片等方式进行浏览,当随着用户需求的增加需要很多复杂的交互,而在交互组件的缩放上,至今还没有相关处理方法,虽然有使用一种伪缩放的方法,即用Android自带的webview控件加载纯静态的网页方式,但没有在本质上解决Android子View (子视图)随父View (根视图)缩放的问题。

【发明内容】

[0003]考虑到相关技术中出现的技术问题,本发明提供了一种新的视图缩放处理技术,能够真正实现页面布局缩放的应用。
[0004]根据本发明的一个方面,提供了一种视图缩放处理方法,包括:响应缩放操作,改变根视图的视图大小;将缩放信息传递给所述根视图的子视图;根据所述缩放信息对所述子视图进行缩放处理。
[0005]在对根视图进行缩放时,同时向子视图下发缩放参数,实现了子视图跟随跟视图进行缩放的效果。
[0006]在上述技术方案中,优选的,在所述子视图的类型为布局视图时,所述缩放信息为缩放参数,调用相应的缩放函数并基于所述缩放参数对所述子视图进行缩放处理;在所述子视图的类型为直接视图时,所述缩放信息为所述子视图缩放后的大小信息,调用测量方法对所述子视图进行缩放处理。
[0007]在根视图使用一个Viewgroup (布局视图),然后实现一个手势缩放的行为,控制缩放的参数,使用这个参数来对当前页面的大小做重置,然后在onMeasure方法中将这个参数传递下去,如果子view是单独的view则直接传递计算之后的值,如果子view是ViewGroup,则传递这个参数的具体值,这样递归的对各个子view做大小和位置的重置,来实现缩放的效果。
[0008]在上述技术方案中,优选的,还可以包括:为子视图中的字体设置预定像素大小,以及随根视图缩放的变化量;在所述根视图缩放时,若子视图为继承自文本视图,则使用所述变化量改变所述子视图中的字体大小。
[0009]在子视图随根视图进行缩放时,其中的字体也能随之改变,并且通过预先设置变化量的方式提高了缩放效率。
[0010]在上述技术方案中,优选的,还可以包括:记录所述根视图和所述子视图的原位置和大小以及原比例;在所述根视图接收到缩放操作和缩放参数后,根据原比例确定长和宽的新值。缩放后的比例与缩放前的比例相同。
[0011]在上述技术方案中,优选的,还可以包括:在对所述子视图进行缩放处理的同时,将所述缩放信息下发至下一级子视图。
[0012]根据本发明的另一方面,还提供了一种视图缩放处理装置,包括:缩放单元,用于响应缩放操作,改变根视图的视图大小,以及根据所述缩放信息对所述根视图的子视图进行缩放处理;数据传递单元,用于将缩放信息传递给所述子视图。
[0013]在对根视图进行缩放时,同时向子视图下发缩放参数,实现了子视图跟随跟视图进行缩放的效果。
[0014]在上述技术方案中,优选的,所述缩放单元包括:调用单元,在所述子视图的类型为布局视图时,所述缩放信息为缩放参数,调用相应的缩放函数并基于所述缩放参数对所述子视图进行缩放处理,以及在所述子视图的类型为直接视图时,所述缩放信息为所述子视图缩放后的大小信息,调用测量方法对所述子视图进行缩放处理。
[0015]在根视图使用一个Viewgroup (布局视图),然后实现一个手势缩放的行为,控制缩放的参数,使用这个参数来对当前页面的大小做重置,然后在onMeasure方法中将这个参数传递下去,如果子view是单独的view则直接传递计算之后的值,如果子view是ViewGroup,则传递这个参数的具体值,这样递归的对各个子view做大小和位置的重置,来实现缩放的效果。
[0016]在上述技术方案中,优选的,还可以包括:设置单元,用于为子视图中的字体设置预定像素大小,以及随根视图缩放的变化量;所述缩放单元还用于在所述根视图缩放时,若子视图为继承自文本视图,则使用所述变化量改变所述子视图中的字体大小。
[0017]在子视图随根视图进行缩放时,其中的字体也能随之改变,并且通过预先设置变化量的方式提高了缩放效率。
[0018]在上述技术方案中,优选的,还可以包括:存储单元,记录所述根视图和所述子视图的原位置和大小以及原比例;所述缩放单元还用于在所述根视图接收到缩放操作和缩放参数后,根据原比例确定长和宽的新值。缩放后的比例与缩放前的比例相同。
[0019]在上述技术方案中,优选的,所述数据传递单元还用于在对所述子视图进行缩放处理的同时,将所述缩放信息下发至下一级子视图。
[0020]本发明公开了一种在安卓系统应用程序中实现应用程序内的页面级缩放的解决方案。在现有的安卓系统应用程序中,这种需求很不常见,但对于在手机上的杂志阅读很有实际意义。首先在根布局使用一个Viewgroup,然后实现一个手势缩放的行为,控制缩放的参数,使用这个参数来对当前页面的大小做重置,然后在onMeasure方法中将这个参数传递下去,如果子view是单独的view,则直接传递计算之后的值,如果子view是ViewGroup,则传递这个参数的具体值,这样递归的对各个子view做大小和位置的重置,来实现缩放的效果。
【附图说明】
[0021]图1示出了根据本发明的实施例的视图缩放处理方法的示意流程图;
[0022]图2示出了根据本发明的实施例的视图缩放处理装置的示意框图。
【具体实施方式】
[0023]为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和【具体实施方式】对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0024]在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。
[0025]图1示出了根据本发明的实施例的文字处理方法的示意流程图。
[0026]如图1所示,根据本发明的实施例的视图缩放处理方法可以包括以下步骤:
[0027]步骤102,响应缩放操作,改变根视图的视图大小;步骤104,将缩放信息传递给所述根视图的子视图;步骤106,根据所述缩放信息对所述子视图进行缩放处理。
[0028]在对根视图进行缩放时,同时向子视图下发缩放参数,实现了子视图跟随跟视图进行缩放的效果。
[0029]在上述技术方案中,优选的,在所述子视图的类型为布局视图时,所述缩放信息为缩放参数,调用相应的缩放函数并基于所述缩放参数对所述子视图进行缩放处理;在所述子视图的类型为直接视图时,所述缩放信息为所述子视图缩放后的大小信息,调用测量方法对所述子视图进行缩放处理。
[0030]在根视图使用一个Viewgroup (布局视图),然后实现一个手势缩放的行为,控制缩放的参数,使用这个参数来对当前页面的大小做重置,然后在onMeasure方法中将这个参数传递下去,如果子view是单独的view则直接传递计算之后的值,如果子view是ViewGroup,则传递这个参数的具体值,这样递归的对各个子view做大小和位置的重置,来实现缩放的效果。
[0031]在上述技术方案中,优选的,还可以包括:为子视图中的字体设置预定像素大小,以及随根视图缩放的变化量;在所述根视图缩放时,若子视图为继承自文本视图,则使用所述变化量改变所述子视图中的字体大小。
[0032]在子视图随根视图进行缩放时,其中的字体也能随之改变,并且通过预先设置变化量的方式提高了缩放效率。
[0033]在上述技术方案中,优选的,还可以包括:记录所述根视图和所述子视图的原位置和大小以及原比例;在所述根视图接收到缩放操作和缩放参数后,根据原比例确定长和宽的新值。缩放后的比例与缩放前的比例相同。
[0034]在上述技术方案中,优选的,还可以包括:在对所述子视图进行缩放处理的同时,将所述缩放信息下发至下一级子视图。
[0035]视图(View)在重绘时会以一种递归的方式来逐层的下发缩放信息,并且会经过裁剪大小,定位和绘制这三个基本过程,每个过程都要递归遍历所有的View。这样在父View缩放的时候,也向子View下发缩放参数,子View就可以自己使用后再次下发下去。
[0036]综上,本发明提供的视图缩放处理方法包括以下步骤:
[0037]A步骤、选择一个基础的布局视图作为根视图。实现其包含手势的缩放。可以采用自己的代码实现,也可以使用android自带的手势类来实现。为了方便扩展,使用前者比较合适。内部实现了这个手势缩放之后,要时刻记录缩放的变化量,此时可以做一个防抖的处理,不能多大的缩放都响应,这里可选取ΙΟρχ。在缩放之前,记录子视图和根视图的原始位置和大小,以便保证始终在原始比例,不在缩放时变形。
[0038]B步骤、父View(根视图)的onMeasure方法。传递给各个子View —个变换的缩放参数。如果子视图是ViewGroup,则递归传递给子View缩放参数;如果不是,则直接计算出子View缩放后应有的大小,直接调用子View的measure方法进行缩放处理。
[0039]详细的,B步骤可以再分为以下步骤:
[0040]B-1、在FrameLayout记录其本身和所有的子View的位置大小信息,通过一个boolean的变量来控制是否记录;
[0041]B-2、每次处于根的FrameLayout在接收了缩放的手势和缩放参数之后,直接去计算本View的新位置和大小。计算时选取宽或者高更长的,计算其缩放后的新值,然后根据之前保存的比例来计算宽或者高比较短的那个,这样就保证了原始比例不被破坏。
[0042]B-3、主动调用requestLayout O ,在重新绘制时,通过一个boolean的变量来判断是否是缩放需要重绘的请求,如果需要重绘,则如下:
[0043]在onMeasure中计
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1