发明内容
鉴于上述问题,提出了本发明,以便提供一种克服上述问题或者至少部分地解决上述问题的电子设备上网页缩放的方法和装置。
依据本发明的一个方面,提供了一种电子设备上网页缩放的方法,包括以下步骤:获取原有缩放处理器对象;生成继承缩放处理器类的对象,将所述原有缩放处理器对象传递到其中,以构建定制缩放处理器对象;利用所述定制缩放处理器对象替换原有缩放处理器对象;在检测到缩放操作后,所述定制缩放处理器对象进行操作,包括缩放开始方法、缩放过程方法和缩放完成方法,其中在缩放完成方法中,将网页文字缩放比例设置为网页显示控件的显示缩放比例,并且执行所述原有缩放处理器对象的缩放完成方法。
可选地,在根据本发明的实施例的电子设备上网页缩放的方法中,所述将网页文字缩放比例设置为网页显示控件的显示缩放比例的步骤包括:在电子设备的操作***为Android2.3.x或更早版本的情况下,从所述网页显示控件中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象;或者在电子设备的操作***为Android4.0或更新版本的情况下,从所述缩放管理器对象中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象。
可选地,根据本发明的实施例的电子设备上网页缩放的方法还包括:在缩放过程方法中,执行所述原有缩放处理器对象的缩放过程方法。
可选地,根据本发明的实施例的电子设备上网页缩放的方法还包括:在缩放开始方法中,禁止缩放和拖动同时进行,并且执行所述原有缩放处理器对象的缩放开始方法。
可选地,在根据本发明的实施例的电子设备上网页缩放的方法中,在所述获取原有缩放处理器对象的步骤中,在电子设备的操作***为Android2.3.x或更早版本的情况下,从网页显示控件中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象;或者在电子设备的操作***为Android4.0或更新版本的情况下,从网页显示控件中反射并获取缩放管理器对象,从所述缩放管理器对象中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象。
可选地,在根据本发明的实施例的电子设备上网页缩放的方法中,所述网页显示控件是Android***的WebView控件,所述缩放管理器对象是mZoomManager对象,所述缩放处理器对象是mListener对象,所述缩放处理器类是OnScaleGestureListener类,所述文字缩放比例对象是mTextWrapScale对象,所述缩放检测器对象是mScaleDetector对象,所述缩放开始方法、缩放过程方法、缩放完成方法分别为mListener对象的onScaleBegin方法、onScale方法、onScaleEnd方法。
依据本发明的另一方面,提供了一种电子设备上网页缩放的装置,包括:原有缩放处理器对象获取模块,适于获取原有缩放处理器对象;定制缩放处理器对象构建模块,适于生成继承缩放处理器类的对象,将所述原有缩放处理器对象传递到其中,以构建定制缩放处理器对象;替换模块,适于利用所述定制缩放处理器对象替换原有缩放处理器对象;缩放操作模块,适于在检测到缩放操作后,利用所述定制缩放处理器对象进行操作,包括缩放开始方法、缩放过程方法和缩放完成方法,其中在缩放完成方法中,缩放操作模块将网页文字缩放比例设置为网页显示控件的显示缩放比例,并且执行所述原有缩放处理器对象的缩放完成方法。
可选地,在根据本发明的实施例的电子设备上网页缩放的装置中,在电子设备的操作***为Android2.3.x或更早版本的情况下,所述缩放操作模块适于从所述网页显示控件中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象;或者在电子设备的操作***为Android4.0或更新版本的情况下,所述缩放操作模块适于从所述缩放管理器对象中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象。
可选地,在根据本发明的实施例的电子设备上网页缩放的方法中,所述缩放操作模块适于在缩放过程方法中,执行所述原有缩放处理器对象的缩放过程方法。
可选地,在根据本发明的实施例的电子设备上网页缩放的方法中,所述缩放操作模块适于在缩放开始方法中,禁止缩放和拖动同时进行,并且执行所述原有缩放处理器对象的缩放开始方法。
可选地,在根据本发明的实施例的电子设备上网页缩放的方法中,在电子设备的操作***为Android2.3.x或更早版本的情况下,所述原有缩放处理器对象获取模块适于从网页显示控件中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象;或者在电子设备的操作***为Android4.0或更新版本的情况下,所述原有缩放处理器对象获取模块适于从网页显示控件中反射并获取缩放管理器对象,从所述缩放管理器对象中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象。
可选地,在根据本发明的实施例的电子设备上网页缩放的方法中,所述网页显示控件是Android***的WebView控件,所述缩放管理器对象是mZoomManager对象,所述缩放处理器对象是mListener对象,所述缩放处理器类是OnScaleGestureListener类,所述文字缩放比例对象是mTextWrapScale对象,所述缩放检测器对象是mScaleDetector对象,所述缩放开始方法、缩放过程方法、缩放完成方法分别为mListener对象的onScaleBegin方法、onScale方法、onScaleEnd方法。
本发明提供了上述电子设备上网页缩放的方法和装置。根据本发明的实施例,可以利用定制缩放处理器对象替换原有缩放处理器对象,并且在缩放完成方法中,将网页文字缩放比例设置为网页显示控件的显示缩放比例,从而在不修改浏览器或其它页面显示程序的内核组件(如Android***的WebKit组件)的前提下,实现页面缩放后重新排版、使内容平铺至整个屏幕的功能,解决了因放大而无法显示部分内容的问题。同时,根据本发明的实施例,可以充分利用新版本的操作***带来的新特性,例如利用Android4.0及更新版本的硬件加速功能,可以显著提高缩放速度,还可以利用Android4.0及更新版本的高级网页浏览特征等新特性。另外,由于不需要修改浏览器或其它页面显示程序的内核组件,节省了电子设备的存储空间,同时也避免了修改浏览器内核组件带来的风险。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图3示意性地图示了根据本发明的实施例的电子设备上网页缩放的方法300的流程图。
本发明的原理适用于任何包含显示部件的电子设备,包括、但不限于:基于Windows、Linux、Mac OS、Unix等桌面操作***的计算机;基于iOS、Android、Windows Phone、Symbian等移动操作***的移动电话、平板电脑、视频播放器、电子阅读器、数码相框等等。在下文中,将以基于Android***的电子设备为例,对本发明的原理进行示例性地描述。然而,这只是为了以具体的示例描述本发明,以帮助读者理解本发明的原理,本发明的范围不限于此,而是可以适用于任何包含显示部件、基于任何操作***的电子设备。
在下面的描述中,“缩放”均指“缩小或放大”。
根据本发明的实施例,网页内容不仅可以包括文字内容,也可以包括图片、视频等其它内容。
如图3所示,根据本发明的实施例的电子设备上网页缩放的方法300始于步骤S301,在步骤S301中,获取原有缩放处理器对象。
根据本发明的实施例,在电子设备的操作***为Android2.3.x(例如,Android2.3.7)或更早版本的情况下,可以从网页显示控件中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象。根据本发明的实施例,所述网页显示控件例如可以是Android***的WebView控件,本发明的范围不限于此,网页显示控件可以是任何能够实现网页显示功能的控件,例如iOS***的UIWebView控件等。可选地,对于Android***,所述缩放处理器对象可以是mListener对象,所述缩放检测器对象可以是mScaleDetector对象,其属于ScaleGestureDetector类,当然,这些只是用于例示本发明原理的例子,本发明的范围并不局限于此。
根据本发明的实施例,所述缩放处理器对象是在针对某一控件进行缩放操作时调用的模块,Android***的缩放处理器对象—mListener对象是缩放处理器类—OnScaleGestureListener类的对象,其包括缩放开始方法、缩放过程方法、以及缩放完成方法,对于mListener对象,它们分别为onScaleBegin方法、onScale方法、以及onScaleEnd方法。以用户在电子设备的触摸屏幕上利用两个手指进行缩放的场景为例,当用户准备双指缩放时,也即当用户放下双指并开始拖动时,调用缩放处理器对象的缩放开始方法;在用户缩放的过程中,调用缩放处理器对象的缩放过程方法;在用户松开双指中的至少一指,预示缩放完成时,调用缩放处理器对象的缩放完成方法。每个支持缩放的控件都可以实现属于自己的缩放处理器对象,WebView控件即是其一。
另外,对于反射操作,可以采用Java语言、.Net语言等提供的反射机制来进行操作,将方法或对象从私有属性临时变为公有属性,以供直接使用和修改。本领域技术人员能够理解,同样可以采用其它的程序设计语言,以相似的方式将方法或对象从私有属性临时变为公有属性,以达到反射操作的目的。
对于Android***,可以通过获取Build.VERSION.SDK_INT对象来得到Android***的版本号。
根据本发明的实施例,在电子设备的操作***为Android4.0或更新版本的情况下,可以从网页显示控件中反射并获取缩放管理器对象,从所述缩放管理器对象中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象。其中,对于Android***,所述缩放管理器对象可以是mZoomManager对象,该对象可以直接或间接地被WebView控件调用,这样就可以将缩放操作从原本就很复杂的WebView控件中抽离出来,成为较为独立的模块,并被WebView控件(甚至其它的控件)所用。其中,在Android2.3.x或更早版本中,这个Java类就是WebView控件类,即WebView类;而在Android3.0及以后的版本,该对象为WebView控件所直接使用的一个Java类的对象,即ZoomManager类的对象。
在步骤S301之后,执行步骤S303,其中,生成继承缩放处理器类的对象,将所述原有缩放处理器对象传递到其中,以构建定制缩放处理器对象。之后,执行步骤S305,其中,利用所述定制缩放处理器对象替换原有缩放处理器对象。
根据本发明的实施例,在步骤S303中,可以生成一个对象,将其继承缩放处理器类,在Android***中,缩放处理器类是OnScaleGestureListener类,这样,该对象就可以实现其自己的缩放开始方法、缩放过程方法、以及缩放完成方法,然后,需要将所述原有缩放处理器对象传递到其中,以构建定制缩放处理器对象,这样,在使用定制缩放处理器对象之后,还可以调用***的原有缩放处理器对象。在步骤S305中,在利用所述定制缩放处理器对象替换原有缩放处理器对象之后,可以将变量“是否支持缩放处理器对象”的值设置为true。
在步骤S305之后,执行步骤S307,其中,在检测到缩放操作后,所述定制缩放处理器对象进行操作,包括缩放开始方法、缩放过程方法和缩放完成方法,其中在缩放完成方法中,将网页文字缩放比例设置为网页显示控件的显示缩放比例,并且执行所述原有缩放处理器对象的缩放完成方法。
根据本发明的实施例,在步骤S307中的将网页文字缩放比例设置为网页显示控件的显示缩放比例的步骤中,在电子设备的操作***为Android2.3.x或更早版本的情况下,从所述网页显示控件中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象;而在电子设备的操作***为Android4.0或更新版本的情况下,从所述缩放管理器对象中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象。
根据本发明的实施例,在Android***中,所述文字缩放比例对象是mTextWrapScale对象。将网页显示控件的显示缩放比例赋予所述文字缩放比例对象,即,使文字缩放比例对象的文字缩放比例的值等于网页显示控件的显示缩放比例的值。其中,文字缩放比例是指“网页宽度”/“文本宽度”,显示缩放比例是指“网页宽度”/“屏幕宽度”。当文字缩放比例的值等于显示缩放比例的值时,文本宽度就等于网页宽度,该文本便可以全屏显示。举例来说,如果文字缩放比例为2,而WebView控件的显示缩放比例为1,表示文字所占屏幕的比例为1/2;而如果WebView控件的显示比例和文字缩放比例均为1,则表示文字所占屏幕比例为1/1,也即全屏显示。另外,即使用户在使用过程中通过触摸操作滑动屏幕将文字部分移出屏幕(例如滑动到最右侧,直到文字全部移出屏幕),由于文字缩放比例没有变化,故当用户通过触摸操作将文字滑动回来时,一旦文字的左边框与电子设备屏幕的左边框对齐时,则文字一定是铺满全屏的。
根据本发明的实施例,所述电子设备上网页缩放的方法300还可以包括以下步骤:在步骤S307的缩放开始方法中,禁止缩放和拖动同时进行,并且执行所述原有缩放处理器对象的缩放开始方法。其中,在电子设备的操作***为Android2.3.x或更新版本的情况下,通过反射获取所述缩放管理器对象中的mAllowPanAndScale对象,并且将所述mAllowPanAndScale对象的值设置为false。mAllowPanAndScale对象用来表示是否允许改变缩放的中心点,例如在双指缩放的过程中拖动双指,则可以移动整个内容,将其值设为false表示禁止这一功能,可以确保缩放过程中不会发生偏转。
根据本发明的实施例,所述电子设备上网页缩放的方法300还可以包括以下步骤:在步骤S307的缩放过程方法中,执行所述原有缩放处理器对象的缩放过程方法。
根据本发明的实施例,所述电子设备上网页缩放的方法300还可以包括以下步骤:在步骤S307的缩放完成方法中,判断是否支持缩放功能。
图4示意性地示出了根据本发明的实施例的缩放完成方法的流程图,下面将结合图4对于缩放完成方法中的各个可选步骤进行描述。
如图4所示,可选地,该判断是否支持缩放功能的步骤可以通过如下方式实现:可以获取WebView控件设置模块(Android***中的WebSettings对象)中的“是否支持缩放”变量,该变量为布尔值,若为true,则表示支持,继续进行下一步判断,若为false,则表示不支持缩放功能。接着,从缩放管理器对象中反射“当前网页的最小缩放比例”对象和“当前网页的最大缩放比例”对象以完成获取操作,它们在Android***中分别为mMinZoomScale对象和mMaxZoomScale对象。通常情况下,在网页的源代码(对用户不可见)中,会有一部分用来告知该网页的缩放比例范围,该值通常情况下不公开,故需要通过反射来获取;然后,可以比较“当前网页的最小缩放比例”对象的值与“当前网页的最大缩放比例”对象的值是否相等,若相等,则直接返回false,表示该网页不支持缩放功能,若不相等,则返回true,表示“是否支持缩放功能”变量的值为true,该网页支持缩放功能。
在网页不支持缩放功能的情况下,可以直接执行原有缩放处理器对象的缩放完成方法。
在网页支持缩放功能的情况下,确定Android***的版本。
如图4所示,在Android***为4.0或更新版本的情况下,通过Java提供的反射机制获取缩放管理器对象中的“缩放时是否有动画”对象(在Android***中为mPinchToZoomAnimating对象),该对象的值为布尔值,若其值为false,则可以直接执行原有缩放处理器对象的缩放完成方法;若其值为true,则执行将网页文字缩放比例设置为网页显示控件的显示缩放比例的步骤,并且执行所述原有缩放处理器对象的缩放完成方法。
如图4所示,在Android***为2.3.x或更早版本的情况下,从缩放管理器对象中反射“是否预览缩放效果”对象以完成获取操作,该对象在Android***中为mPreviewZoomOnly对象。若该对象的值为true,则执行将网页文字缩放比例设置为网页显示控件的显示缩放比例的步骤,并且执行所述原有缩放处理器对象的缩放完成方法;若该对象的值为false,则直接执行原有缩放处理器对象的缩放完成方法。
本发明提供了一种电子设备上网页缩放的方法。根据本发明的实施例,可以利用定制缩放处理器对象替换原有缩放处理器对象,并且在缩放完成方法中,将网页文字缩放比例设置为网页显示控件的显示缩放比例,从而在不修改浏览器或其它页面显示程序的内核组件(如Android***的WebKit组件)的前提下,实现页面缩放后重新排版、使内容平铺至整个屏幕的功能,解决了因放大而无法显示部分内容的问题。同时,根据本发明的实施例,可以充分利用新版本的操作***带来的新特性,例如利用Android4.0及更新版本的硬件加速功能,可以显著提高缩放速度,还可以利用Android4.0及更新版本的高级网页浏览特征等新特性。另外,由于不需要修改浏览器或其它页面显示程序的内核组件,节省了电子设备的存储空间,同时也避免了修改浏览器内核组件带来的风险。
与上述的方法300相对应,本发明还提供了一种电子设备上网页缩放的装置500。图5示意性地图示了根据本发明的实施例的电子设备上网页缩放的装置500的框图。
参见图5,所述电子设备上网页缩放的装置500包括原有缩放处理器对象获取模块501、定制缩放处理器对象构建模块503、替换模块505、缩放操作模块507。
根据本发明的实施例,原有缩放处理器对象获取模块501适于获取原有缩放处理器对象;定制缩放处理器对象构建模块503适于生成继承缩放处理器类的对象,将所述原有缩放处理器对象传递到其中,以构建定制缩放处理器对象;替换模块505适于利用所述定制缩放处理器对象替换原有缩放处理器对象;缩放操作模块507适于在检测到缩放操作后,利用所述定制缩放处理器对象进行操作,包括缩放开始方法、缩放过程方法和缩放完成方法,其中在缩放完成方法中,将网页文字缩放比例设置为网页显示控件的显示缩放比例,并且执行所述原有缩放处理器对象的缩放完成方法。
根据本发明的实施例,首先,原有缩放处理器对象获取模块501获取原有缩放处理器对象。
根据本发明的实施例,在电子设备的操作***为Android2.3.x(例如,Android2.3.7)或更早版本的情况下,原有缩放处理器对象获取模块501可以从网页显示控件中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象。根据本发明的实施例,所述网页显示控件例如可以是Android***的WebView控件,本发明的范围不限于此,网页显示控件可以是任何能够实现网页显示功能的控件,例如iOS***的UIWebView控件等。可选地,对于Android***,所述缩放处理器对象可以是mListener对象,所述缩放检测器对象可以是mScaleDetector对象,其属于ScaleGestestureDetector类,当然,这些只是用于例示本发明原理的例子,本发明的范围并不局限于此。
根据本发明的实施例,所述缩放处理器对象是在针对某一控件进行缩放操作时调用的模块,Android***的缩放处理器对象—mListener对象是缩放处理器类—OnScaleGestureListener类的对象,其包括缩放开始方法、缩放过程方法、以及缩放完成方法,对于mListener对象,它们分别为onScaleBegin方法、onScale方法、以及onScaleEnd方法。以用户在电子设备的触摸屏幕上利用两个手指进行缩放的场景为例,当用户准备双指缩放时,也即当用户放下双指并开始拖动时,缩放操作模块507调用缩放处理器对象的缩放开始方法;在用户缩放的过程中,缩放操作模块507调用缩放处理器对象的缩放过程方法;在用户松开双指中的至少一指,预示缩放完成时,缩放操作模块507调用缩放处理器对象的缩放完成方法。每个支持缩放的控件都可以实现属于自己的缩放处理器对象,WebView控件即是其一。
另外,对于反射操作,原有缩放处理器对象获取模块501可以采用Java语言、.Net语言等提供的反射机制来进行操作,将方法或对象从私有属性临时变为公有属性,以供直接使用和修改。本领域技术人员能够理解,同样可以采用其它的程序设计语言,以相似的方式将方法或对象从私有属性临时变为公有属性,以达到反射操作的目的。
对于Android***,原有缩放处理器对象获取模块501可以通过获取Build.VERSION.SDK_INT对象来得到Android***的版本号。
根据本发明的实施例,在电子设备的操作***为Android4.0或更新版本的情况下,原有缩放处理器对象获取模块501可以从网页显示控件中反射并获取缩放管理器对象,从所述缩放管理器对象中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象。其中,对于Android***,所述缩放管理器对象可以是mZoomManager对象,该对象可以直接或间接地被WebView控件调用,这样就可以将缩放操作从原本就很复杂的WebView控件中抽离出来,成为较为独立的模块,并被WebView控件(甚至其它的控件)所用。其中,在Android2.3.x或更早版本中,这个Java类就是WebView控件类,即WebView类;而在Android3.0及以后的版本,该对象为WebView控件所直接使用的一个Java类的对象,即ZoomManager类的对象。
随后,定制缩放处理器对象构建模块503可以生成继承缩放处理器类的对象,将所述原有缩放处理器对象传递到其中,以构建定制缩放处理器对象。之后,替换模块505利用所述定制缩放处理器对象替换原有缩放处理器对象。
根据本发明的实施例,定制缩放处理器对象构建模块503可以生成一个对象,将其继承缩放处理器类,在Android***中,缩放处理器类是OnScaleGestureListener类,这样,该对象就可以实现其自己的缩放开始方法、缩放过程方法、以及缩放完成方法,然后,定制缩放处理器对象构建模块503需要将所述原有缩放处理器对象传递到其中,以构建定制缩放处理器对象,这样,缩放操作模块507在使用定制缩放处理器对象之后,还可以调用***的原有缩放处理器对象。而替换模块505在利用所述定制缩放处理器对象替换原有缩放处理器对象之后,可以将变量“是否支持缩放处理器对象”的值设置为true。
在此之后,缩放操作模块507在检测到缩放操作后,利用所述定制缩放处理器对象进行操作,包括缩放开始方法、缩放过程方法和缩放完成方法,其中在缩放完成方法中,缩放操作模块507将网页文字缩放比例设置为网页显示控件的显示缩放比例,并且执行所述原有缩放处理器对象的缩放完成方法。
根据本发明的实施例,在电子设备的操作***为Android2.3.x或更早版本的情况下,缩放操作模块507可以从所述网页显示控件中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象;而在电子设备的操作***为Android4.0或更新版本的情况下,缩放操作模块507可以从所述缩放管理器对象中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象。
根据本发明的实施例,在Android***中,所述文字缩放比例对象是mTextWrapScale对象。缩放操作模块507将网页显示控件的显示缩放比例赋予所述文字缩放比例对象,即,使文字缩放比例对象的文字缩放比例的值等于网页显示控件的显示缩放比例的值。其中,文字缩放比例是指“网页宽度”/“文本宽度”,显示缩放比例是指“网页宽度”/“屏幕宽度”。当文字缩放比例的值等于显示缩放比例的值时,文本宽度就等于网页宽度,该文本便可以全屏显示。举例来说,如果文字缩放比例为2,而WebView控件的显示缩放比例为1,表示文字所占屏幕的比例为1/2;而如果WebView控件的显示比例和文字缩放比例均为1,则表示文字所占屏幕比例为1/1,也即全屏显示。另外,即使用户在使用过程中通过触摸操作滑动屏幕将文字部分移出屏幕(例如滑动到最右侧,直到文字全部移出屏幕),由于文字缩放比例没有变化,故当用户通过触摸操作将文字滑动回来时,一旦文字的左边框与电子设备屏幕的左边框对齐时,则文字一定是铺满全屏的。
根据本发明的实施例,在缩放开始方法中,缩放操作模块507可以禁止缩放和拖动同时进行,并且执行所述原有缩放处理器对象的缩放开始方法。其中,在电子设备的操作***为Android2.3.x或更新版本的情况下,缩放操作模块507可以通过反射获取所述缩放管理器对象中的mAllowPanAndScale对象,并且将所述mAllowPanAndScale对象的值设置为false。mAllowPanAndScale对象用来表示是否允许改变缩放的中心点,例如在双指缩放的过程中拖动双指,则可以移动整个内容,将其值设为false表示禁止这一功能,可以确保缩放过程中不会发生偏转。
根据本发明的实施例,在缩放过程方法中,缩放操作模块507可以执行所述原有缩放处理器对象的缩放过程方法。
根据本发明的实施例,在缩放完成方法中,缩放操作模块507可以判断网页是否支持缩放功能。
仍然参照图4,可选地,缩放操作模块507可以通过如下方式进行上述判断:缩放操作模块507可以获取WebView控件设置模块(Android***中的WebSettings对象)中的“是否支持缩放”变量,该变量为布尔值,若为true,则表示支持,若为false,则表示不支持缩放功能,结束该判断;缩放操作模块507从缩放管理器对象中反射“当前网页的最小缩放比例”对象和“当前网页的最大缩放比例”对象以完成获取操作,它们在Android***中分别为mMinZoomScale对象和mMaxZoomScale对象。通常情况下,在网页的源代码(对用户不可见)中,会有一部分用来告知该网页的缩放比例范围,该值通常情况下不公开,故需要通过反射来获取;然后,缩放操作模块507可以比较“当前网页的最小缩放比例”对象的值与“当前网页的最大缩放比例”对象的值是否相等,若相等,则直接返回false,表示该网页不支持缩放功能,若不相等,则返回true,表示“是否支持缩放功能”变量的值为true,该网页支持缩放功能。
在网页不支持缩放功能的情况下,缩放操作模块507可以直接执行原有缩放处理器对象的缩放完成方法。
在网页支持缩放功能的情况下,缩放操作模块507确定Android***的版本。
在Android***为4.0或更新版本的情况下,缩放操作模块507可以通过Java提供的反射机制获取缩放管理器对象中的“缩放时是否有动画”对象(在Android***中为mPinchToZoomAnimating对象),该对象的值为布尔值,若其值为false,则缩放操作模块507可以直接执行原有缩放处理器对象的缩放完成方法;若其值为true,则缩放操作模块507将网页文字缩放比例设置为网页显示控件的显示缩放比例,并且执行所述原有缩放处理器对象的缩放完成方法。
在Android***为2.3.x或更早版本的情况下,缩放操作模块507可以从缩放管理器对象中反射“是否预览缩放效果”对象以完成获取操作,该对象在Android***中为mPreviewZoomOnly对象。若该对象的值为true,则缩放操作模块507将网页文字缩放比例设置为网页显示控件的显示缩放比例,并且执行所述原有缩放处理器对象的缩放完成方法;若该对象的值为false,则缩放操作模块507直接执行原有缩放处理器对象的缩放完成方法。
由于上述各设备(装置)实施例与前述各方法实施例相对应,因此不再对各装置实施例进行详细描述。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的装置中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个装置中。可以把实施例中的若干模块组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者模块中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个装置实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的装置中的一些或者全部模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明的实施例公开了A1.一种电子设备上网页缩放的方法,包括以下步骤:获取原有缩放处理器对象;生成继承缩放处理器类的对象,将所述原有缩放处理器对象传递到其中,以构建定制缩放处理器对象;利用所述定制缩放处理器对象替换原有缩放处理器对象;在检测到缩放操作后,所述定制缩放处理器对象进行操作,包括缩放开始方法、缩放过程方法和缩放完成方法,其中在缩放完成方法中,将网页文字缩放比例设置为网页显示控件的显示缩放比例,并且执行所述原有缩放处理器对象的缩放完成方法。A2.如A1所述的方法,其中所述将网页文字缩放比例设置为网页显示控件的显示缩放比例的步骤包括:在电子设备的操作***为Android2.3.x或更早版本的情况下,从所述网页显示控件中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象;或者在电子设备的操作***为Android4.0或更新版本的情况下,从所述缩放管理器对象中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象。A3.如A1所述的方法,还包括步骤:在缩放过程方法中,执行所述原有缩放处理器对象的缩放过程方法。A4.如A1所述的方法,还包括步骤:在缩放开始方法中,禁止缩放和拖动同时进行,并且执行所述原有缩放处理器对象的缩放开始方法。A5.如A1至A4中的任一项所述的方法,其中在所述获取原有缩放处理器对象的步骤中,在电子设备的操作***为Android2.3.x或更早版本的情况下,从网页显示控件中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象;或者在电子设备的操作***为Android4.0或更新版本的情况下,从网页显示控件中反射并获取缩放管理器对象,从所述缩放管理器对象中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象。A6.如A1至A4中的任一项所述的方法,其中所述网页显示控件是Android***的WebView控件,所述缩放管理器对象是mZoomManager对象,所述缩放处理器对象是mListener对象,所述缩放处理器类是OnScaleGestureListener类,所述文字缩放比例对象是mTextWrapScale对象,所述缩放检测器对象是mScaleDetector对象,所述缩放开始方法、缩放过程方法、缩放完成方法分别为mListener对象的onScaleBegin方法、onScale方法、onScaleEnd方法。
本发明的实施例还公开了B7.一种电子设备上网页缩放的装置,包括:原有缩放处理器对象获取模块,适于获取原有缩放处理器对象;定制缩放处理器对象构建模块,适于生成继承缩放处理器类的对象,将所述原有缩放处理器对象传递到其中,以构建定制缩放处理器对象;替换模块,适于利用所述定制缩放处理器对象替换原有缩放处理器对象;缩放操作模块,适于在检测到缩放操作后,利用所述定制缩放处理器对象进行操作,包括缩放开始方法、缩放过程方法和缩放完成方法,其中在缩放完成方法中,缩放操作模块将网页文字缩放比例设置为网页显示控件的显示缩放比例,并且执行所述原有缩放处理器对象的缩放完成方法。B8.如B7所述的装置,其中在电子设备的操作***为Android2.3.x或更早版本的情况下,所述缩放操作模块适于从所述网页显示控件中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象;或者在电子设备的操作***为Android4.0或更新版本的情况下,所述缩放操作模块适于从所述缩放管理器对象中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象。B9.如B7所述的装置,其中所述缩放操作模块适于在缩放过程方法中,执行所述原有缩放处理器对象的缩放过程方法。B10.如B7所述的装置,其中所述缩放操作模块适于在缩放开始方法中,禁止缩放和拖动同时进行,并且执行所述原有缩放处理器对象的缩放开始方法。B11.如B7至B10中的任一项所述的装置,其中在电子设备的操作***为Android2.3.x或更早版本的情况下,所述原有缩放处理器对象获取模块适于从网页显示控件中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象;或者在电子设备的操作***为Android4.0或更新版本的情况下,所述原有缩放处理器对象获取模块适于从网页显示控件中反射并获取缩放管理器对象,从所述缩放管理器对象中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象。B12.如B7至B10中的任一项所述的装置,其中所述网页显示控件是Android***的WebView控件,所述缩放管理器对象是mZoomManager对象,所述缩放处理器对象是mListener对象,所述缩放处理器类是OnScaleGestureListener类,所述文字缩放比例对象是mTextWrapScale对象,所述缩放检测器对象是mScaleDetector对象,所述缩放开始方法、缩放过程方法、缩放完成方法分别为mListener对象的onScaleBegin方法、onScale方法、onScaleEnd方法。