CN103324741B - 一种电子设备上网页缩放和对齐的方法和装置 - Google Patents
一种电子设备上网页缩放和对齐的方法和装置 Download PDFInfo
- Publication number
- CN103324741B CN103324741B CN201310269588.6A CN201310269588A CN103324741B CN 103324741 B CN103324741 B CN 103324741B CN 201310269588 A CN201310269588 A CN 201310269588A CN 103324741 B CN103324741 B CN 103324741B
- Authority
- CN
- China
- Prior art keywords
- scaling
- pixel value
- webpage
- web page
- page contents
- 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
Landscapes
- Digital Computer Display Output (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明公开了一种电子设备上网页缩放和对齐的方法和装置,方法包括:生成继承缩放处理器类的对象,将原有缩放处理器对象传递到其中,以构建定制缩放处理器对象,利用定制缩放处理器对象替换原有缩放处理器对象;在检测到缩放操作后,缩放处理器对象进行操作,包括缩放开始、过程和完成方法,在完成方法中,将网页文字缩放比例设置为网页显示控件的显示缩放比例,并执行原有缩放处理器对象的完成方法;构建定制网页渲染处理器对象,并利用定制网页渲染处理器对象替换网页显示控件的原有网页渲染处理器对象;获取网页内容左侧边框的像素值,根据该像素值移动网页内容,并调用原有网页渲染处理器对象处理。
Description
技术领域
本发明涉及网页显示技术,尤其涉及一种电子设备上网页缩放和对齐的方法和装置。
背景技术
随着电子设备智能化的不断发展,越来越多的用户使用电子设备上的浏览器浏览网页或其它内容,而在浏览网页的操作中,对内容的缩小或放大(以下简称“缩放”)的使用场景较为普遍。
在一种现有技术的方案中,采用电子设备操作系统自带的显示控件,以Android系统为例,开启其自带的WebView控件的缩放功能,即可实现缩放。图1示意性地示出了电子设备上所显示的一个完整网页页面的视图,采用这种现有技术方案,用户可通过放大页面中的某一区域以更清楚地看到这一区域的具体内容,具体表现为:该区域内的图片、文字等元素都会等比例的放大。然而,如示意性地示出电子设备上所显示的放大后的某一区域的视图的图2所示,该区域外的内容,尤其是之前还在该区域内、后来因放大而移出该区域的内容,会因超出屏幕范围而不能显示。与之相对,通过缩小操作,能更清楚地看到网页的全貌,具体表现为:区域内的图片、文字等元素会等比例缩小,因缩小而空余出来的区域则会填充上之前没有显示完全的内容,但与此同时也会导致文字变得较小,可读性较差。
在另一种现有技术的方案中,通过修改浏览器内核组件(如Android系统的WebKit组件),然后将其捆绑到其应用程序安装包中来实现缩放功能。这种现有技术方案可以做到在放大指定区域时,将该区域内的文字内容进行重新排版,并将其“平铺”地显示到电子设备上,以达到类似阅读小说的效果,避免了因放大而无法显示部分内容的问题。然而,这种现有技术方案存在着缩放速度较慢、应用程序安装包较大(通常需要多占用5MB到6MB的存储空间)、无法利用新版本的操作系统带来的新特性等缺陷,同时,修改浏览器内核组件存在一定的风险,加大了开发和适配的难度,有可能导致浏览器崩溃而难以查出具体原因。
而且,在网页缩放之后,经常会出现如图3所示的缩放后网页未对齐情况,如图3所示,网页中左侧的部分内容被移出电子设备的屏幕。此时,用户可以通过在电子设备屏幕上的触摸操作移动网页内容,改变其在屏幕上显示的位置,但受限于手动触摸操作的精度,往往难以使网页内容的左侧边框与电子设备屏幕的左侧边框完全对齐,网页内容难以处于屏幕上精确居中的位置,通常需要多次触摸操作调整,才能达到相对理想的显示效果。
发明内容
鉴于上述问题,提出了本发明,以便提供一种克服上述问题或者至少部分地解决上述问题的电子设备上网页缩放和对齐的方法和装置。
依据本发明的一个方面,提供了一种电子设备上网页缩放和对齐的方法,包括以下步骤:生成继承缩放处理器类的对象,将原有缩放处理器对象传递到其中,以构建定制缩放处理器对象,并且利用定制缩放处理器对象替换原有缩放处理器对象;在检测到缩放操作后,所述缩放处理器对象进行操作,包括缩放开始方法、缩放过程方法和缩放完成方法,其中在缩放完成方法中,将网页文字缩放比例设置为网页显示控件的显示缩放比例,并且执行所述原有缩放处理器对象的缩放完成方法;生成继承事件处理器类的对象,将网页显示控件的原有网页渲染处理器对象传递到其中,以构建定制网页渲染处理器对象,并且利用所述定制网页渲染处理器对象替换网页显示控件的原有网页渲染处理器对象;获取网页内容左侧边框的像素值,根据所述网页内容左侧边框的像素值移动网页内容,并且调用所述原有网页渲染处理器对象执行处理。
可选地,根据本发明的实施例的电子设备上网页缩放和对齐的方法还包括步骤:在所述生成继承缩放处理器类的对象并且将原有缩放处理器对象传递到其中以构建定制缩放处理器对象的步骤之前,获取原有缩放处理器对象,包括:在电子设备的操作系统为Android2.3.x或更早版本的情况下,从网页显示控件中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象;或者在电子设备的操作系统为Android4.0或更新版本的情况下,从网页显示控件中反射并获取缩放管理器对象,从所述缩放管理器对象中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象。
可选地,根据本发明的实施例的电子设备上网页缩放和对齐的方法还包括步骤:在所述生成继承事件处理器类的对象并且将网页显示控件的原有网页渲染处理器对象传递到其中以构建定制网页渲染处理器对象的步骤之前,获取网页显示控件的原有网页渲染处理器对象,其中从网页显示控件中反射原有网页渲染处理器对象,以获取所述原有网页渲染处理器对象。
可选地,在根据本发明的实施例的电子设备上网页缩放和对齐的方法中,其中所述将网页文字缩放比例设置为网页显示控件的显示缩放比例的步骤包括:在电子设备的操作系统为Android2.3.x或更早版本的情况下,从所述网页显示控件中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象;或者在电子设备的操作系统为Android4.0或更新版本的情况下,从所述缩放管理器对象中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象。
可选地,在根据本发明的实施例的电子设备上网页缩放和对齐的方法中,所述获取网页内容左侧边框的像素值的步骤包括:从缩放管理器对象中反射缩放中点横坐标像素值方法以及缩放中点纵坐标像素值方法,以获取缩放中点的所在视图的横纵坐标像素值;
调用网页显示控件的获取可视区域横坐标像素值方法和获取可视区域纵坐标像素值方法,以获取可视区域左下顶点在网页中的横纵坐标像素值;
从网页显示控件中反射获取内容的横坐标像素值方法和获取内容的纵坐标像素值方法,并且将所述缩放中点的所在视图的横纵坐标像素值与所述可视区域左下顶点在网页中的横纵坐标像素值分别相加并作为参数传递到所述获取内容的横坐标像素值方法和所述获取内容的纵坐标像素值方法,以获取缩放中点在网页中的横坐标像素值以及缩放中点在网页中的纵坐标像素值;调用网页显示控件的获取显示缩放比例方法,以获取显示缩放比例;以及将所述缩放中点在网页中的横坐标像素值、所述缩放中点在网页中的纵坐标像素值、所述显示缩放比例作为参数传递到获取网页内容左侧边框的像素值方法,以获取网页内容左侧边框的像素值。
可选地,在根据本发明的实施例的电子设备上网页缩放和对齐的方法中,所述缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值分别是网页缩放操作结束时缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值,所述显示缩放比例是缩放后显示缩放比例,其中将网页缩放操作结束时缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值以及缩放后显示缩放比例作为参数传递到获取网页内容左侧边框的像素值方法,以获取网页内容左侧边框的第一像素值,其中在所述根据该网页内容左侧边框的像素值移动网页内容的步骤中,在所述网页内容左侧边框的第一像素值为正数或零的情况下,根据该第一像素值移动网页内容,并且将该第一像素值记录为该网页的网页内容左侧边框的参考像素值。
可选地,在根据本发明的实施例的电子设备上网页缩放和对齐的方法中,在所述根据所述网页内容左侧边框的像素值移动网页内容的步骤中,将所保存的网页内容左侧边框的像素值、所述显示缩放比例、可视区域左下顶点在网页中的纵坐标像素值作为参数传递到移动可视区域方法,从而在水平方向上移动网页内容。
可选地,根据本发明的实施例的电子设备上网页缩放和对齐的方法还包括步骤:在所述网页内容左侧边框的第一像素值为负数的情况下,基于缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值以及缩放前显示缩放比例,获取网页内容左侧边框的第二像素值,在所述网页内容左侧边框的第二像素值为正数或零的情况下,根据所述第二像素值移动网页内容,并将该第二像素值记录为该网页的网页内容左侧边框的参考像素值。
可选地,在根据本发明的实施例的电子设备上网页缩放和对齐的方法中,所述网页的网页内容左侧边框的参考像素值的默认值为一负的预定值,在所述在检测到缩放操作后所述缩放处理器对象进行操作的步骤之前还包括:获取该网页的网页内容左侧边框的参考像素值;判断所述参考像素值是否为正数或零,如果其为正数或零,则该参考像素值不变;如果所述参考像素值为负数,则根据缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值以及缩放前显示缩放比例,获取网页内容左侧边框的像素值,并且在该获取的像素值为正数或零的情况下将其作为网页内容左侧边框的参考像素值。
可选地,在根据本发明的实施例的电子设备上网页缩放和对齐的方法中,当所述第二像素值为负数时,根据所述参考像素值移动网页内容。
可选地,在根据本发明的实施例的电子设备上网页缩放和对齐的方法中,所述网页显示控件是Android系统的WebView控件,所述缩放管理器对象是mZoomManager对象,所述缩放处理器对象是mListener对象,所述缩放处理器类是OnScaleGestureListener类,所述文字缩放比例对象是mTextWrapScale对象,所述缩放检测器对象是mScaleDetector对象,所述缩放开始方法、缩放过程方法、缩放完成方法分别为mListener对象的onScaleBegin方法、onScale方法、onScaleEnd方法,所述事件处理器类是Handler类,所述网页渲染处理器对象是mPrivateHandler对象,所述接收消息方法是handleMessage方法,所述缩放中点横坐标像素值方法是mZoomCenterX方法,所述缩放中点纵坐标像素值方法是mZoomCenterY方法,所述获取可视区域横坐标像素值方法是getScrollX方法,所述获取可视区域纵坐标像素值方法是getScrollY方法,所述获取内容的横坐标像素值方法是viewToContentX方法,所述获取内容的纵坐标像素值方法是viewToContentY方法,所述获取显示缩放比例方法是getScale方法,所述获取网页内容左侧边框的像素值方法是getBlockLeftEdge方法或nativeGetBlockLeftEdge方法,所述移动可视区域方法是scrollTo方法或pinScrollTo方法。
依据本发明的另一方面,提供了一种电子设备上网页缩放和对齐的装置,包括:定制缩放处理器对象构建模块,适于生成继承缩放处理器类的对象,将原有缩放处理器对象传递到其中,以构建定制缩放处理器对象,并且利用所述定制缩放处理器对象替换原有缩放处理器对象;缩放操作模块,适于在检测到缩放操作后,利用所述缩放处理器对象进行操作,包括缩放开始方法、缩放过程方法和缩放完成方法,其中在缩放完成方法中,将网页文字缩放比例设置为网页显示控件的显示缩放比例,并且执行所述原有缩放处理器对象的缩放完成方法;定制网页渲染处理器对象构建模块,适于生成继承事件处理器类的对象,将网页显示控件的原有网页渲染处理器对象传递到其中,以构建定制网页渲染处理器对象,并且利用所述定制网页渲染处理器对象替换网页显示控件的原有网页渲染处理器对象;像素值获取模块,适于获取网页内容左侧边框的像素值;以及网页内容移动模块,适于根据所述网页内容左侧边框的像素值移动网页内容,并且调用所述原有网页渲染处理器对象执行处理。
可选地,在根据本发明的实施例的电子设备上网页缩放和对齐的装置中,还包括原有缩放处理器对象获取模块,适于在所述定制缩放处理器对象构建模块生成继承缩放处理器类的对象并且将原有缩放处理器对象传递到其中以构建定制缩放处理器对象之前,获取原有缩放处理器对象,其中:在电子设备的操作系统为Android2.3.x或更早版本的情况下,原有缩放处理器对象获取模块从网页显示控件中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象;或者在电子设备的操作系统为Android4.0或更新版本的情况下,原有缩放处理器对象获取模块从网页显示控件中反射并获取缩放管理器对象,从所述缩放管理器对象中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象。
可选地,在根据本发明的实施例的电子设备上网页缩放和对齐的装置中,还包括原有网页渲染处理器对象获取模块,适于在所述定制网页渲染处理器对象构建模块生成继承事件处理器类的对象并且将网页显示控件的原有网页渲染处理器对象传递到其中以构建定制网页渲染处理器对象之前,获取网页显示控件的原有网页渲染处理器对象,其中原有网页渲染处理器对象获取模块从网页显示控件中反射原有网页渲染处理器对象,以获取所述原有网页渲染处理器对象。
可选地,在根据本发明的实施例的电子设备上网页缩放和对齐的装置中,所述缩放操作模块适于:在电子设备的操作系统为Android2.3.x或更早版本的情况下,从所述网页显示控件中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象;或者在电子设备的操作系统为Android4.0或更新版本的情况下,从所述缩放管理器对象中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象。
可选地,在根据本发明的实施例的电子设备上网页缩放和对齐的装置中,所述像素值获取模块适于:从缩放管理器对象中反射缩放中点横坐标像素值方法以及缩放中点纵坐标像素值方法,以获取缩放中点的所在视图的横纵坐标像素值;调用网页显示控件的获取可视区域横坐标像素值方法和获取可视区域纵坐标像素值方法,以获取可视区域左下顶点在网页中的横纵坐标像素值;从网页显示控件中反射获取内容的横坐标像素值方法和获取内容的纵坐标像素值方法,并且将所述缩放中点的所在视图的横纵坐标像素值与所述可视区域左下顶点在网页中的横纵坐标像素值分别相加并作为参数传递到所述获取内容的横坐标像素值方法和所述获取内容的纵坐标像素值方法,以获取缩放中点在网页中的横坐标像素值以及缩放中点在网页中的纵坐标像素值;调用网页显示控件的获取显示缩放比例方法,以获取显示缩放比例;以及将所述缩放中点在网页中的横坐标像素值、所述缩放中点在网页中的纵坐标像素值、所述显示缩放比例作为参数传递到获取网页内容左侧边框的像素值方法,以获取网页内容左侧边框的像素值。
可选地,在根据本发明的实施例的电子设备上网页缩放和对齐的装置中,所述缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值分别是网页缩放操作结束时缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值,所述显示缩放比例是缩放后显示缩放比例,其中像素值获取模块将网页缩放操作结束时缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值以及缩放后显示缩放比例作为参数传递到获取网页内容左侧边框的像素值方法,以获取网页内容左侧边框的第一像素值,其中在所述网页内容左侧边框的第一像素值为正数或零的情况下,所述网页内容移动模块根据该第一像素值移动网页内容,并且将该第一像素值记录为该网页的网页内容左侧边框的参考像素值。
可选地,在根据本发明的实施例的电子设备上网页缩放和对齐的装置中,所述网页内容移动模块适于:将所保存的网页内容左侧边框的第一像素值、所述显示缩放比例、可视区域左下顶点在网页中的纵坐标像素值作为参数传递到移动可视区域方法,从而在水平方向上移动网页内容。
可选地,在根据本发明的实施例的电子设备上网页缩放和对齐的装置中,所述像素值获取模块还适于:在所述网页内容左侧边框的像素值为负数的情况下,基于缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值以及缩放前显示缩放比例,获取网页内容左侧边框的第二像素值,在所述网页内容左侧边框的第二像素值为正数或零的情况下,所述网页内容移动模块根据所述第二像素值移动网页内容,并将该第二像素值记录为该网页的网页内容左侧边框的参考像素值。
可选地,在根据本发明的实施例的电子设备上网页缩放和对齐的装置中,所述网页的网页内容左侧边框的参考像素值的默认值为一负的预定值,所述像素值获取模块还适于在所述缩放操作模块在检测到缩放操作后利用所述缩放处理器对象进行操作之前:获取该网页的网页内容左侧边框的参考像素值;判断所述参考像素值是否为正数或零,如果其为正数或零,则该参考像素值不变;如果所述参考像素值为负数,则根据缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值以及缩放前显示缩放比例,获取网页内容左侧边框的像素值,并且在该获取的像素值为正数或零的情况下将其作为网页内容左侧边框的参考像素值。
可选地,在根据本发明的实施例的电子设备上网页缩放和对齐的装置中,当所述第二像素值为负数时,所述网页内容移动模块根据所述参考像素值移动网页内容。
可选地,在根据本发明的实施例的电子设备上网页缩放和对齐的装置中,所述网页显示控件是Android系统的WebView控件,所述缩放管理器对象是mZoomManager对象,所述缩放处理器对象是mListener对象,所述缩放处理器类是OnScaleGestureListener类,所述文字缩放比例对象是mTextWrapScale对象,所述缩放检测器对象是mScaleDetector对象,所述缩放开始方法、缩放过程方法、缩放完成方法分别为mListener对象的onScaleBegin方法、onScale方法、onScaleEnd方法,所述事件处理器类是Handler类,所述网页渲染处理器对象是mPrivateHandler对象,所述接收消息方法是handleMessage方法,所述缩放中点横坐标像素值方法是mZoomCenterX方法,所述缩放中点纵坐标像素值方法是mZoomCenterY方法,所述获取可视区域横坐标像素值方法是getScrollX方法,所述获取可视区域纵坐标像素值方法是getScrollY方法,所述获取内容的横坐标像素值方法是viewToContentX方法,所述获取内容的纵坐标像素值方法是viewToContentY方法,所述获取显示缩放比例方法是getScale方法,所述获取网页内容左侧边框的像素值方法是getBlockLeftEdge方法或nativeGetBlockLeftEdge方法,所述移动可视区域方法是scrollTo方法或pinScrollTo方法。
本发明提供了上述电子设备上网页缩放和对齐的方法和装置。根据本发明的实施例,可以利用定制缩放处理器对象替换原有缩放处理器对象,并且在缩放完成方法中,将网页文字缩放比例设置为网页显示控件的显示缩放比例,从而在不修改浏览器或其它页面显示程序的内核组件(如Android系统的WebKit组件)的前提下,实现页面缩放后重新排版、使内容平铺至整个屏幕的功能,解决了因放大而无法显示部分内容的问题。同时,根据本发明的实施例,可以充分利用新版本的操作系统带来的新特性,例如利用Android4.0及更新版本的硬件加速功能,可以显著提高缩放速度,还可以利用Android4.0及更新版本的高级网页浏览特征等新特性。另外,由于不需要修改浏览器或其它页面显示程序的内核组件,节省了电子设备的存储空间,同时也避免了修改浏览器内核组件带来的风险。另外,根据本发明的实施例,可以构建定制网页渲染处理器对象,并且在网页进行了缩放的情况下,获取网页内容左侧边框的像素值,并且根据所述网页内容左侧边框的像素值移动网页内容,由此可以在网页缩放之后,自动移动网页内容,使得网页内容的左侧边框与电子设备屏幕的左侧边框对齐,使得网页内容铺满屏幕,从而充分利用屏幕上的显示空间,达到理想的显示效果。根据本发明,无需人工干预,即可实现网页缩放后自动对齐,避免了手动调整不够精确、无法达到理想的显示效果的问题。而且,本发明的实施例通过利用网页内容左侧边框的第一像素值、第二像素值、以及参考像素值的操作,可以最大程度地克服对于某些操作系统网页内容左侧边框的像素值小于零、找不到网页内容对应区域的问题,从而实现了对于几乎所有操作系统的支持。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示意性地示出了电子设备上所显示的一个完整网页页面的视图;
图2示意性地示出了电子设备上所显示的放大后的某一区域的视图;
图3示意性地示出了电子设备上网页缩放后未对齐的网页的视图;
图4示意性地示出了根据本发明的实施例的电子设备上网页缩放和对齐的方法的流程图;
图5示意性地示出了根据本发明的实施例的缩放完成方法的流程图;
图6示意性地示出了根据本发明的实施例的获取网页内容左侧边框的像素值的步骤中的各子步骤的流程图;
图7示意性地示出了根据本发明的实施例的缩放中点在网页和可视区域中的相对位置的视图;
图8示意性地示出了根据本发明的实施例的缩放操作开始时和缩放操作结束时的缩放中点的视图;
图9示意性地示出了包括根据本发明的实施例的电子设备上网页缩放和对齐的方法的可选步骤的流程图;
图10示意性地示出了电子设备上网页缩放后对齐的网页的视图;以及
图11示意性地示出了根据本发明的实施例的电子设备上网页缩放和对齐的装置的框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图4示意性地图示了根据本发明的实施例的电子设备上网页缩放和对齐的方法400的流程图。
本发明的原理适用于任何包含显示部件的电子设备,包括、但不限于:基于Windows、Linux、Mac OS、Unix等桌面操作系统的计算机;基于iOS、Android、Windows Phone、Symbian等移动操作系统的移动电话、平板电脑、视频播放器、电子阅读器、数码相框等等。在下文中,将以基于Android系统的电子设备为例,对本发明的原理进行示例性地描述。然而,这只是为了以具体的示例描述本发明,以帮助读者理解本发明的原理,本发明的范围不限于此,而是可以适用于任何包含显示部件、基于任何操作系统的电子设备。
在下面的描述中,“缩放”均指“缩小或放大”。
根据本发明的实施例,网页内容不仅可以包括文字内容,也可以包括图片、视频等其它内容。
如图4所示,根据本发明的实施例的电子设备上网页缩放和对齐的方法400始于步骤S402,在步骤S402中,生成继承缩放处理器类的对象,将原有缩放处理器对象传递到其中,以构建定制缩放处理器对象,并且利用定制缩放处理器对象替换原有缩放处理器对象。
可选地,根据本发明的实施例,在步骤S402之前,方法400还可以包括步骤S401,其中,获取原有缩放处理器对象。
根据本发明的实施例,在电子设备的操作系统为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类的对象。
根据本发明的实施例,在上述步骤S402中,生成继承缩放处理器类的对象,将原有缩放处理器对象传递到其中,以构建定制缩放处理器对象,并且利用定制缩放处理器对象替换原有缩放处理器对象。
根据本发明的实施例,在步骤S402中,可以生成一个对象,将其继承缩放处理器类,在Android系统中,缩放处理器类是OnScaleGestureListener类,这样,该对象就可以实现其自己的缩放开始方法、缩放过程方法、以及缩放完成方法,然后,需要将所述原有缩放处理器对象传递到其中,以构建定制缩放处理器对象,这样,在使用定制缩放处理器对象之后,还可以调用系统的原有缩放处理器对象。在步骤S402中,在利用所述定制缩放处理器对象替换原有缩放处理器对象之后,可以将变量“是否支持缩放处理器对象”的值设置为true。
如图4所示,在步骤S402之后,执行步骤S404,其中,在检测到缩放操作后,所述缩放处理器对象进行操作,包括缩放开始方法、缩放过程方法和缩放完成方法,其中在缩放完成方法中,将网页文字缩放比例设置为网页显示控件的显示缩放比例,并且执行所述原有缩放处理器对象的缩放完成方法。
根据本发明的实施例,在步骤S404中的将网页文字缩放比例设置为网页显示控件的显示缩放比例的步骤中,在电子设备的操作系统为Android2.3.x或更早版本的情况下,从所述网页显示控件中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象;而在电子设备的操作系统为Android4.0或更新版本的情况下,从所述缩放管理器对象中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象。
根据本发明的实施例,在Android系统中,所述文字缩放比例对象是mTextWrapScale对象。将网页显示控件的显示缩放比例赋予所述文字缩放比例对象,即,使文字缩放比例对象的文字缩放比例的值等于网页显示控件的显示缩放比例的值。其中,文字缩放比例是指“网页宽度”/“文本宽度”,显示缩放比例是指“网页宽度”/“屏幕宽度”。当文字缩放比例的值等于显示缩放比例的值时,文本宽度就等于网页宽度,该文本便可以全屏显示。举例来说,如果文字缩放比例为2,而WebView控件的显示缩放比例为1,表示文字所占屏幕的比例为1/2;而如果WebView控件的显示比例和文字缩放比例均为1,则表示文字所占屏幕比例为1/1,也即全屏显示。另外,即使用户在使用过程中通过触摸操作滑动屏幕将文字部分移出屏幕(例如滑动到最右侧,直到文字全部移出屏幕),由于文字缩放比例没有变化,故当用户通过触摸操作将文字滑动回来时,一旦文字的左边框与电子设备屏幕的左边框对齐时,则文字一定是铺满全屏的。
根据本发明的实施例,所述电子设备上网页缩放和对齐的方法400还可以包括以下步骤:在步骤S404的缩放开始方法中,禁止缩放和拖动同时进行,并且执行所述原有缩放处理器对象的缩放开始方法。其中,在电子设备的操作系统为Android2.3.x或更新版本的情况下,通过反射获取所述缩放管理器对象中的mAllowPanAndScale对象,并且将所述mAllowPanAndScale对象的值设置为false。mAllowPanAndScale对象用来表示是否允许改变缩放的中心点,例如在双指缩放的过程中拖动双指,则可以移动整个内容,将其值设为false表示禁止这一功能,可以确保缩放过程中不会发生偏转。
根据本发明的实施例,所述电子设备上网页缩放和对齐的方法400还可以包括以下步骤:在步骤S404的缩放过程方法中,执行所述原有缩放处理器对象的缩放过程方法。
根据本发明的实施例,所述电子设备上网页缩放和对齐的方法400还可以包括以下步骤:在步骤S404的缩放完成方法中,判断网页是否支持缩放功能。图5示意性地示出了根据本发明的实施例的缩放完成方法的流程图,下面将结合图5对于缩放完成方法中的各个可选步骤进行描述。
如图5所示,可选地,该判断步骤可以通过如下方式实现:可以获取WebView控件设置模块(Android系统中的WebSettings对象)中的“是否支持缩放”变量,该变量为布尔值,若为true,则表示支持,若为false,则表示不支持缩放功能,结束该判断步骤;从缩放管理器对象中反射“当前网页的最小缩放比例”对象和“当前网页的最大缩放比例”对象以完成获取操作,它们在Android系统中分别为mMinZoomScale对象和mMaxZoomScale对象。通常情况下,在网页的源代码(对用户不可见)中,会有一部分用来告知该网页的缩放比例范围,该值通常情况下不公开,故需要通过反射来获取;然后,可以比较“当前网页的最小缩放比例”对象的值与“当前网页的最大缩放比例”对象的值是否相等,若相等,则直接返回false,表示该网页不支持缩放功能,若不相等,则返回true,表示“是否支持缩放功能”变量的值为true,该网页支持缩放功能。
在网页不支持缩放功能的情况下,可以直接执行原有缩放处理器对象的缩放完成方法。
在网页支持缩放功能的情况下,确定Android系统的版本。
如图5所示,在Android系统为4.0或更新版本的情况下,通过Java提供的反射机制获取缩放管理器对象中的“缩放时是否有动画”对象(在Android系统中为mPinchToZoomAnimating对象),该对象的值为布尔值,若其值为false,则可以直接执行原有缩放处理器对象的缩放完成方法;若其值为true,则执行上面描述的将网页文字缩放比例设置为网页显示控件的显示缩放比例的步骤,并且执行所述原有缩放处理器对象的缩放完成方法。
如图5所示,在Android系统为2.3.x或更早版本的情况下,从缩放管理器对象中反射“是否预览缩放效果”对象以完成获取操作,该对象在Android系统中为mPreviewZoomOnly对象。若该对象的值为true,则执行上面描述的将网页文字缩放比例设置为网页显示控件的显示缩放比例的步骤,并且执行所述原有缩放处理器对象的缩放完成方法;若该对象的值为false,则直接执行原有缩放处理器对象的缩放完成方法。
如图4所示,在步骤S404之后,执行步骤S406,其中,生成继承事件处理器类的对象,将网页显示控件的原有网页渲染处理器对象传递到其中,以构建定制网页渲染处理器对象,并且利用所述定制网页渲染处理器对象替换网页显示控件的原有网页渲染处理器对象。
可选地,根据本发明的实施例,在步骤S406之前,所述方法400还可以包括步骤S405,其中,获取网页显示控件的原有网页渲染处理器对象。
根据本发明的实施例,对于Android,网页渲染处理器对象可以是mPrivateHandler对象,本发明的范围不限于此,其还可以例如是Windows系统中的WindowMessages或其它系统中的类似模块。对于Android系统,网页渲染处理器对象是一种从浏览器内核组件WebKit向WebView发送消息的处理模块,在Android系统中,其是用Handler的方式实现的,起到接收消息事件的作用。由于WebView仅仅是为了显示和接收触摸事件,而真正的操作均在WebKit组件中进行,因此在WebKit组件处理完毕时,会发送一条或者多条通知到WebView控件,以实现及时的刷新和处理。网页渲染处理器对象仅有一个方法,即接收消息方法,对于Android系统为handleMessage方法,由系统调用,发生条件为WebView收到来自WebKit的消息。根据本发明的实施例,在上述步骤S405中,可以从网页显示控件中反射原有网页渲染处理器对象,以获取所述原有网页渲染处理器对象。
接下来,在步骤S406中,生成继承事件处理器类的对象,将网页显示控件的原有网页渲染处理器对象传递到其中,以构建定制网页渲染处理器对象,并且利用所述定制网页渲染处理器对象替换网页显示控件的原有网页渲染处理器对象。
根据本发明的实施例,在步骤S406中,可以生成一个对象,使其继承事件处理器类的对象。例如,对于Android系统,所述事件处理器类是Handler类。这样,该对象就可以实现其自己的接收消息方法(对于Android系统是handleMessage方法),然后,需要将所述原有网页渲染处理器对象传递到其中,以构建定制网页渲染处理器对象,这样,在使用定制网页渲染处理器对象之后,还可以调用系统的原有网页渲染处理器对象。最后,利用所述定制网页渲染处理器对象替换所述网页显示控件的原有网页渲染处理器对象。
在步骤S406之后,执行步骤S408,其中,获取网页内容左侧边框的像素值。
根据本发明的实施例,所述缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值可以分别是网页缩放操作结束时缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值,所述显示缩放比例可以是缩放后显示缩放比例,从而,可以将网页缩放操作结束时缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值以及缩放后显示缩放比例作为参数传递到获取网页内容左侧边框的像素值方法,以获取网页内容左侧边框的第一像素值。根据本发明的实施例,可以在接收到刷新页面消息之后,来获取网页内容左侧边框的第一像素值。根据本发明的实施例,在步骤S408中,要判断是否接收到刷新页面消息。一般情况下,每发生一次网页的变化,不管这种变化是来自于用户的操作、还是网页的动画、或是网页的脚本,只要网页在屏幕上有内容改变,WebView控件就都会收到刷新页面消息。通常每隔2-3秒、或者用户对网页进行操作、或者网页自身发生了变化,刷新页面消息都会被调用1-10次不等。在Android系统中,该刷新页面消息的编号为105,消息名称为“NEW_PICTURE_MSG_ID”,该消息在其它系统中的编号略有不同。根据本发明的实施例,可以在接收到刷新页面消息之后、下一次再接收到刷新页面消息时开始执行根据本发明的对齐操作,在Android系统中,也即使用Handler的post方法。这是因为若在当次接收到刷新页面消息就进行对齐操作,可能会影响之前的网页缩放操作对页面刷新的效率,因此在下一次接收到刷新页面消息(不超过10ms)时再进行对齐操作是比较理想的。
根据本发明的实施例,在上述步骤S408中,所述获取网页内容左侧边框的像素值的步骤包括子步骤S408a、S408b、S408c、S408d、以及S408e。图6示意性地示出了根据本发明的实施例的获取网页内容左侧边框的像素值的步骤中的各子步骤的流程图。
如图6所示,在子步骤S408a中,从缩放管理器对象中反射缩放中点横坐标像素值方法以及缩放中点纵坐标像素值方法,以获取缩放中点的所在视图的横纵坐标像素值。
根据本发明的实施例,对于Android系统,所述缩放管理器对象可以是mZoomManager对象,该对象可以直接或间接地被WebView控件调用,这样就可以将缩放操作从原本就很复杂的WebView控件中抽离出来,成为较为独立的模块,并被WebView控件(甚至其它的控件)所用。其中,在Android2.3.x或更早版本中,这个Java类就是WebView控件类,即WebView类;而在Android3.0及以后的版本,该对象为WebView控件所直接使用的一个Java类的对象,即ZoomManager类的对象。而对于Android系统,所述缩放中点横坐标像素值方法可以是mZoomCenterX方法,所述缩放中点纵坐标像素值方法可以是mZoomCenterY方法。
图7示意性地示出了根据本发明的实施例的缩放中点在网页和可视区域中的相对位置的视图。在子步骤S408a中,获取缩放中点的所在视图的横纵坐标像素值,如图7所示,所获取的是缩放中点相对于显示区域左下角顶点O1的横纵坐标像素值(x1,y1)。
图8示意性地示出了根据本发明的实施例的缩放操作开始时和缩放操作结束时的缩放中点的视图。如图8所示,缩放操作开始时缩放中点所在位置的坐标为(x0,y0),而缩放操作结束时缩放中点所在位置的坐标为(x1,y1)。在步骤S408中,缩放中点可以为缩放操作结束时的缩放中点,即图8中的(x1,y1)。
如图6所示,接下来,在子步骤S408b中,调用网页显示控件的获取可视区域横坐标像素值方法和获取可视区域纵坐标像素值方法,以获取可视区域左下顶点在网页中的横纵坐标像素值。根据本发明的实施例,所述获取可视区域横坐标像素值方法可以是getScrollX方法,所述获取可视区域纵坐标像素值方法可以是getScrollY方法。如图7所示,在子步骤S408b中要获取的是可视区域左下顶点O1相对于网页左下顶点O2的横纵坐标像素值(x2,y2)。
如图6所示,之后,执行子步骤S408c,其中,从网页显示控件中反射获取内容的横坐标像素值方法和获取内容的纵坐标像素值方法,并且将所述缩放中点的所在视图的横纵坐标像素值与所述可视区域左下顶点在网页中的横纵坐标像素值分别相加并作为参数传递到所述获取内容的横坐标像素值方法和所述获取内容的纵坐标像素值方法,以获取缩放中点在网页中的横坐标像素值以及缩放中点在网页中的纵坐标像素值。
根据本发明的实施例,对于Android系统,所述获取内容的横坐标像素值方法可以是viewToContentX方法,所述获取内容的纵坐标像素值方法可以是viewToContentY方法。在子步骤S408c中,将所述缩放中点的所在视图的横纵坐标像素值与所述可视区域左下顶点在网页中的横纵坐标像素值分别相加,可以得到横纵坐标像素值(x1+x2,y1+y2),即,缩放中点相对于网页左下顶点O2的横纵坐标像素值,也就是缩放中点在网页中的横坐标像素值以及缩放中点在网页中的纵坐标像素值。将(x1+x2,y1+y2)作为参数传递到所述获取内容的横坐标像素值方法和所述获取内容的纵坐标像素值方法的目的是去除一些边框、滚动条等像素,从而得到更准确的位置表示。
如图6所示,然后,执行子步骤S408d,其中,调用网页显示控件的获取显示缩放比例方法,以获取显示缩放比例(例如缩放后显示缩放比例)。根据本发明的实施例,对于Android系统,所述获取显示缩放比例方法是getScale方法。在子步骤S408d中,所要获取的可以是缩放结束后的显示缩放比例。
如图6所示,接着,执行子步骤S408e,其中,将所述缩放中点在网页中的横坐标像素值、所述缩放中点在网页中的纵坐标像素值、所述显示缩放比例作为参数传递到获取网页内容左侧边框的像素值方法,以获取网页内容左侧边框的像素值。如上所述,在所述缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值分别是网页缩放操作结束时缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值、所述显示缩放比例是缩放后显示缩放比例的情况下,此时所获取的是网页内容左侧边框的第一像素值。
根据本发明的实施例,对于Android系统,所述获取网页内容左侧边框的像素值方法是getBlockLeftEdge方法或nativeGetBlockLeftEdge方法。对于Android4.1.x版本及之后的版本,可以使用getBlockLeftEdge方法,而对于Android4.1.x之前的版本,可以使用nativeGetBlockLeftEdge方法。对于Android系统,可以通过获取Build.VERSION.SDK_INT对象来得到Android系统的版本号。
在子步骤S408e中,可以将上述横纵坐标像素值(x1+x2,y1+y2)以及缩放后显示缩放比例作为参数传递到getBlockLeftEdge方法或nativeGetBlockLeftEdge方法,在所返回的网页内容左侧边框的像素值为负数的情况下,表明没有获得网页内容左侧边框的像素值,无法执行对齐操作,此时可以丢弃该像素值。而在所返回的网页内容左侧边框的像素值为正数或零的情况下,表明已经获得了网页内容左侧边框的像素值。
在步骤S408之后,执行步骤S410,其中根据所述网页内容左侧边框的像素值移动网页内容,并且调用所述原有网页渲染处理器对象执行处理。根据本发明的实施例,可以将所保存的网页内容左侧边框的像素值(例如上述第一像素值)、所述缩放后显示缩放比例(例如上述缩放后显示缩放比例)、可视区域左下顶点在网页中的纵坐标像素值(即,上述y2)作为参数传递到移动可视区域方法,从而在水平方向上移动网页内容。即,仅在水平方向上调整可视区域的位置,而在垂直方向上不变。对于Android系统,所述移动可视区域方法是scrollTo方法或pinScrollTo方法。
根据本发明的实施例,在步骤S410中,可以将所保存的网页内容左侧边框的像素值减去预先定义的像素值以获得网页内容左侧边框的修正像素值,并将所述修正像素值、所述缩放后显示缩放比例、以及可视区域左下顶点在网页中的纵坐标像素值作为参数传递到移动可视区域方法,从而在水平方向上移动网页内容。将所保存的网页内容左侧边框的像素值减去预先定义的像素值这一步骤的目的是能够确保正常对齐,该预先定义的像素值可以根据实际需要进行选取,例如5像素,即将所保存的网页内容左侧边框的像素值减去5像素,以获得网页内容左侧边框的修正像素值。根据本发明的实施例,当所述修正像素值小于零时,令所述修正像素值为零。然后,就可以将所述修正像素值、所述缩放后显示缩放比例、以及可视区域左下顶点在网页中的纵坐标像素值(即,上述y2)作为参数传递到移动可视区域方法,从而在水平方向上移动网页内容。
在步骤S410中,接着,调用所述原有网页渲染处理器对象执行处理。
图9示意性地示出了包括根据本发明的实施例的可选步骤的流程图。如图9所示,可选地,根据本发明的实施例,上述获取网页内容左侧边框的像素值的步骤S408可以包括步骤S901d、步骤S902、步骤S905,即,获取网页内容左侧边框的参考像素值、第一像素值、第二像素值。而上述步骤S410中的根据网页内容左侧边框的像素值移动网页内容的步骤可以包括步骤S903、步骤S906、或步骤S907,即根据网页内容左侧边框的第一像素值、第二像素值、或参考像素值移动网页内容。下面结合图9详细描述根据本发明的实施例的上述步骤以及其它可选步骤。如图9所示,该方法除了上述S901d、S902、S905、S903、S906、S907之外,还可以包括可选步骤S901a、S901b、S901c、S904。
如图9所示,首先,在子步骤S901a中,可以获取该网页的网页内容左侧边框的参考像素值;接着,在子步骤S901b中,判断所述参考像素值是否为正数或零。如果其为正数或零,则执行子步骤S901c,该参考像素值不变。即,如果所述参考像素值为正数或零,则表明已经成功获取了网页内容左侧边框的参考像素值。根据本发明的实施例,所述网页的网页内容左侧边框的参考像素值的默认值为一负的预定值,例如“-1”,若所获取的参考像素值为负数,则表明没有成功地获取网页内容左侧边框的像素值。
如果所述参考像素值为负数,则执行子步骤S901d,其中,基于缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值(例如,如图8所示的(x0,y0))以及缩放前显示缩放比例,获取网页内容左侧边框的像素值,并且在该获取的像素值为正数或零的情况下将其作为网页内容左侧边框的参考像素值。根据本发明的实施例,可以利用上面描述的步骤S408中各子步骤的操作来获取缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值以及缩放前显示缩放比例,并且从而获取网页内容左侧边框的参考像素值。即,在子步骤S901d中,可以将缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值以及缩放前显示缩放比例作为参数传递到获取网页内容左侧边框的像素值方法,以获取网页内容左侧边框的像素值。根据本发明的实施例,对于Android系统,根据本发明的实施例,对于Android系统,所述获取网页内容左侧边框的像素值方法可以是如上所述的getBlockLeftEdge方法或nativeGetBlockLeftEdge方法。
如图9所示,根据本发明的实施例,在步骤S901c或步骤S901d之后,执行步骤S902,其中,在所述缩放中点在网页中的横纵坐标像素值分别是网页缩放操作结束时缩放中点在网页中的横纵坐标像素值、并且所述显示缩放比例是缩放后显示缩放比例的情况下,获取网页内容左侧边框的第一像素值。根据本发明的实施例,可以利用上面描述的步骤S408中各子步骤的操作来获取网页缩放操作结束时缩放中点的横坐标像素值和纵坐标像素值以及缩放后显示缩放比例,并且从而获取网页内容左侧边框的第一像素值。
如图9所示,可选地,根据本发明的实施例,在步骤S902之后,可以执行步骤S903和S904、或者步骤S905和S906(或S907)。在所述网页内容左侧边框的第一像素值为正数或零的情况下,可以执行步骤S903,其中,根据该第一像素值移动网页内容。然后,在步骤S904中,将该第一像素值记录为该网页的网页内容左侧边框的参考像素值。根据本发明的实施例,在步骤S904中,可以将所述网页内容左侧边框的第一像素值、所述缩放后显示缩放比例、可视区域左下顶点在网页中的纵坐标像素值(即,上述y2)作为参数传递到移动可视区域方法,从而在水平方向上移动网页内容。即,仅在水平方向上调整可视区域的位置,而在垂直方向上不变。对于Android系统,所述移动可视区域方法是scrollTo方法或pinScrollTo方法。
而在所述第一像素值为负数的情况下,执行步骤S905,其中,基于缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值(例如,如图8所示的(x0,y0))以及缩放前显示缩放比例,获取网页内容左侧边框的第二像素值。根据本发明的实施例,可以利用上面描述的步骤S408中各子步骤的操作,来获取缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值以及缩放前显示缩放比例,并且从而获取网页内容左侧边框的第二像素值。
然后,在所述网页内容左侧边框的第二像素值为正数或零的情况下,执行步骤S906,其中,根据所述第二像素值移动网页内容,并将该第二像素值记录为该网页的网页内容左侧边框的参考像素值。根据本发明的实施例,在上述步骤S905中,可以将所述缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值以及缩放前显示缩放比例传递到获取网页内容左侧边框的像素值方法,以获取网页内容左侧边框的第二像素值。对于Android系统,所述获取网页内容左侧边框的像素值方法可以是如上所述的getBlockLeftEdge方法或nativeGetBlockLeftEdge方法。而在上述步骤S906中,可以将所述第二像素值、缩放后显示缩放比例、可视区域左下顶点在网页中的纵坐标像素值(即,上述y2)作为参数传递到移动可视区域方法,从而在水平方向上移动网页内容。即,仅在水平方向上调整可视区域的位置,而在垂直方向上不变。对于Android系统,所述移动可视区域方法可以是如上所述的scrollTo方法或pinScrollTo方法。
而当所述第二像素值为负数时,执行步骤S907,其中,可以根据所述参考像素值移动网页内容。其中,可以将所述参考像素值、缩放后显示缩放比例、可视区域左下顶点在网页中的纵坐标像素值(即,上述y2)作为参数传递到移动可视区域方法,从而在水平方向上移动网页内容。同样,仅在水平方向上调整可视区域的位置,而在垂直方向上不变,所述移动可视区域方法可以是如上所述的scrollTo方法或pinScrollTo方法。
根据本发明的实施例,在执行可选的步骤S901的情况下,可以从中获得网页内容左侧边框的参考像素值。随后,在网页内容左侧边框的第一像素值为正数或零的情况下,在步骤S904中,可以将该第一像素值记录为该网页的网页内容左侧边框的参考像素值,以替换在步骤S901中获得的参考像素值;而在第一像素值为负数的情况下,如果网页内容左侧边框的第二像素值为正数或零,则在步骤S906中,将该第二像素值记录为该网页的网页内容左侧边框的参考像素值,以替换在步骤S901中获得的参考像素值。而如果上述条件均不满足,即第一像素值为负数,且第二像素值也为负数,则可以将在步骤S901中获得的参考像素值作为网页内容左侧边框的参考像素值。
可选地,根据本发明的实施例,在所述第一像素值为负数的情况下,在执行步骤S905之前,还需要判断缩放结束时的显示缩放比例是否大于缩放前的显示缩放比例,并且缩放前的显示缩放比例是否大于零,只有在这两次判断的结果均为“是”的情况下,才执行后续的步骤S905等步骤。在屏幕宽度不发生变化的情况下,一旦网页进行缩放,网页宽度发生变化,网页显示控件的显示缩放比例也会发生变化。
在执行了根据本发明的实施例的电子设备上网页缩放和对齐的方法400中的上述各步骤之后,就可以实现在网页缩放后与屏幕的左侧边框对齐的效果,如图11所示,其中示意性地示出了电子设备上网页缩放后对齐的网页的视图。
本发明提供了一种电子设备上网页缩放和对齐的方法。根据本发明的实施例,可以利用定制缩放处理器对象替换原有缩放处理器对象,并且在缩放完成方法中,将网页文字缩放比例设置为网页显示控件的显示缩放比例,从而在不修改浏览器或其它页面显示程序的内核组件(如Android系统的WebKit组件)的前提下,实现页面缩放后重新排版、使内容平铺至整个屏幕的功能,解决了因放大而无法显示部分内容的问题。同时,根据本发明的实施例,可以充分利用新版本的操作系统带来的新特性,例如利用Android4.0及更新版本的硬件加速功能,可以显著提高缩放速度,还可以利用Android4.0及更新版本的高级网页浏览特征等新特性。另外,由于不需要修改浏览器或其它页面显示程序的内核组件,节省了电子设备的存储空间,同时也避免了修改浏览器内核组件带来的风险。另外,根据本发明的实施例,可以构建定制网页渲染处理器对象,并且在网页进行了缩放的情况下,获取网页内容左侧边框的像素值,并且根据所述网页内容左侧边框的像素值移动网页内容,由此可以在网页缩放之后,自动移动网页内容,使得网页内容的左侧边框与电子设备屏幕的左侧边框对齐,使得网页内容铺满屏幕,从而充分利用屏幕上的显示空间,达到理想的显示效果。根据本发明,无需人工干预,即可实现网页缩放后自动对齐,避免了手动调整不够精确、无法达到理想的显示效果的问题。而且,本发明的实施例通过利用网页内容左侧边框的第一像素值、第二像素值、以及参考像素值的操作,可以最大程度地克服对于某些操作系统网页内容左侧边框的像素值小于零、找不到网页内容对应区域的问题,从而实现了对于几乎所有操作系统的支持。
与上述的方法400相对应,本发明还提供了一种电子设备上网页缩放和对齐的装置1100。图11示意性地图示了根据本发明的实施例的电子设备上网页缩放和对齐的装置1100的框图。
参见图11,所述电子设备上网页缩放和对齐的装置1100主要包括定制缩放处理器对象构建模块1102、缩放操作模块1104、定制网页渲染处理器对象构建模块1106、像素值获取模块1108、网页内容移动模块1110。
根据本发明的实施例,定制缩放处理器对象构建模块1102适于生成继承缩放处理器类的对象,将原有缩放处理器对象传递到其中,以构建定制缩放处理器对象,并且利用所述定制缩放处理器对象替换原有缩放处理器对象;缩放操作模块1104适于在检测到缩放操作后,利用所述缩放处理器对象进行操作,包括缩放开始方法、缩放过程方法和缩放完成方法,其中在缩放完成方法中,将网页文字缩放比例设置为网页显示控件的显示缩放比例,并且执行所述原有缩放处理器对象的缩放完成方法;定制网页渲染处理器对象构建模块1106适于生成继承事件处理器类的对象,将网页显示控件的原有网页渲染处理器对象传递到其中,以构建定制网页渲染处理器对象,并且利用所述定制网页渲染处理器对象替换网页显示控件的原有网页渲染处理器对象;像素值获取模块1108适于获取网页内容左侧边框的像素值;网页内容移动模块1110适于根据所述网页内容左侧边框的像素值移动网页内容,并且调用所述原有网页渲染处理器对象执行处理。
首先,定制缩放处理器对象构建模块1102生成继承缩放处理器类的对象,将原有缩放处理器对象传递到其中,以构建定制缩放处理器对象,并且利用定制缩放处理器对象替换原有缩放处理器对象。
如图11所示,可选地,根据本发明的实施例,装置1100还可以包括原有缩放处理器对象获取模块1101,其可以获取原有缩放处理器对象。
根据本发明的实施例,在电子设备的操作系统为Android2.3.x(例如,Android2.3.7)或更早版本的情况下,原有缩放处理器对象获取模块1101可以从网页显示控件中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象。根据本发明的实施例,所述网页显示控件例如可以是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或更新版本的情况下,原有缩放处理器对象获取模块1101可以从网页显示控件中反射并获取缩放管理器对象,从所述缩放管理器对象中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象。其中,对于Android系统,所述缩放管理器对象可以是mZoomManager对象,该对象可以直接或间接地被WebView控件调用,这样就可以将缩放操作从原本就很复杂的WebView控件中抽离出来,成为较为独立的模块,并被WebView控件(甚至其它的控件)所用。其中,在Android2.3.x或更早版本中,这个Java类就是WebView控件类,即WebView类;而在Android3.0及以后的版本,该对象为WebView控件所直接使用的一个Java类的对象,即ZoomManager类的对象。
根据本发明的实施例,定制缩放处理器对象构建模块1102生成继承缩放处理器类的对象,将原有缩放处理器对象传递到其中,以构建定制缩放处理器对象,并且利用定制缩放处理器对象替换原有缩放处理器对象。
根据本发明的实施例,定制缩放处理器对象构建模块1102可以生成一个对象,将其继承缩放处理器类,在Android系统中,缩放处理器类是OnScaleGestureListener类,这样,该对象就可以实现其自己的缩放开始方法、缩放过程方法、以及缩放完成方法,然后,需要将所述原有缩放处理器对象传递到其中,以构建定制缩放处理器对象,这样,在使用定制缩放处理器对象之后,还可以调用系统的原有缩放处理器对象。在定制缩放处理器对象构建模块1102利用所述定制缩放处理器对象替换原有缩放处理器对象之后,可以将变量“是否支持缩放处理器对象”的值设置为true。
随后,缩放操作模块1104在检测到缩放操作后,利用所述缩放处理器对象进行操作,包括缩放开始方法、缩放过程方法和缩放完成方法,其中在缩放完成方法中,缩放操作模块1104将网页文字缩放比例设置为网页显示控件的显示缩放比例,并且执行所述原有缩放处理器对象的缩放完成方法。
根据本发明的实施例,在缩放操作模块1104将网页文字缩放比例设置为网页显示控件的显示缩放比例的过程中,在电子设备的操作系统为Android2.3.x或更早版本的情况下,缩放操作模块1104从所述网页显示控件中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象;而在电子设备的操作系统为Android4.0或更新版本的情况下,从所述缩放管理器对象中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象。
根据本发明的实施例,在Android系统中,所述文字缩放比例对象是mTextWrapScale对象。将网页显示控件的显示缩放比例赋予所述文字缩放比例对象,即,使文字缩放比例对象的文字缩放比例的值等于网页显示控件的显示缩放比例的值。其中,文字缩放比例是指“网页宽度”/“文本宽度”,显示缩放比例是指“网页宽度”/“屏幕宽度”。当文字缩放比例的值等于显示缩放比例的值时,文本宽度就等于网页宽度,该文本便可以全屏显示。举例来说,如果文字缩放比例为2,而WebView控件的显示缩放比例为1,表示文字所占屏幕的比例为1/2;而如果WebView控件的显示比例和文字缩放比例均为1,则表示文字所占屏幕比例为1/1,也即全屏显示。另外,即使用户在使用过程中通过触摸操作滑动屏幕将文字部分移出屏幕(例如滑动到最右侧,直到文字全部移出屏幕),由于文字缩放比例没有变化,故当用户通过触摸操作将文字滑动回来时,一旦文字的左边框与电子设备屏幕的左边框对齐时,则文字一定是铺满全屏的。
根据本发明的实施例,所述缩放操作模块1104还可以在缩放开始方法中,禁止缩放和拖动同时进行,并且执行所述原有缩放处理器对象的缩放开始方法。其中,在电子设备的操作系统为Android2.3.x或更新版本的情况下,缩放操作模块1104通过反射获取所述缩放管理器对象中的mAllowPanAndScale对象,并且将所述mAllowPanAndScale对象的值设置为false。mAllowPanAndScale对象用来表示是否允许改变缩放的中心点,例如在双指缩放的过程中拖动双指,则可以移动整个内容,将其值设为false表示禁止这一功能,可以确保缩放过程中不会发生偏转。
根据本发明的实施例,所述缩放操作模块1104还可以在缩放过程方法中,执行所述原有缩放处理器对象的缩放过程方法。
根据本发明的实施例,所述缩放操作模块1104还可以在缩放完成方法中,判断网页是否支持缩放功能。可以结合上述图5来理解缩放操作模块1104在缩放完成方法中的操作。
可选地,缩放操作模块1104可以通过如下方式实现上述判断操作:可以获取WebView控件设置模块(Android系统中的WebSettings对象)中的“是否支持缩放”变量,该变量为布尔值,若为true,则表示支持,若为false,则表示不支持缩放功能,结束该判断;从缩放管理器对象中反射“当前网页的最小缩放比例”对象和“当前网页的最大缩放比例”对象以完成获取操作,它们在Android系统中分别为mMinZoomScale对象和mMaxZoomScale对象。通常情况下,在网页的源代码(对用户不可见)中,会有一部分用来告知该网页的缩放比例范围,该值通常情况下不公开,故需要通过反射来获取;然后,可以比较“当前网页的最小缩放比例”对象的值与“当前网页的最大缩放比例”对象的值是否相等,若相等,则直接返回false,表示该网页不支持缩放功能,若不相等,则返回true,表示“是否支持缩放功能”变量的值为true,该网页支持缩放功能。
在网页不支持缩放功能的情况下,缩放操作模块1104可以直接执行原有缩放处理器对象的缩放完成方法。
在网页支持缩放功能的情况下,缩放操作模块1104确定Android系统的版本。
在Android系统为4.0或更新版本的情况下,缩放操作模块1104通过Java提供的反射机制获取缩放管理器对象中的“缩放时是否有动画”对象(在Android系统中为mPinchToZoomAnimating对象),该对象的值为布尔值,若其值为false,则缩放操作模块1104可以直接执行原有缩放处理器对象的缩放完成方法;若其值为true,则缩放操作模块1104将网页文字缩放比例设置为网页显示控件的显示缩放比例,并且执行所述原有缩放处理器对象的缩放完成方法。
在Android系统为2.3.x或更早版本的情况下,缩放操作模块1104从缩放管理器对象中反射“是否预览缩放效果”对象以完成获取操作,该对象在Android系统中为mPreviewZoomOnly对象。若该对象的值为true,则缩放操作模块1104将网页文字缩放比例设置为网页显示控件的显示缩放比例,并且执行所述原有缩放处理器对象的缩放完成方法;若该对象的值为false,则缩放操作模块1104直接执行原有缩放处理器对象的缩放完成方法。
根据本发明的实施例,所述定制网页渲染处理器对象构建模块1106生成继承事件处理器类的对象,将网页显示控件的原有网页渲染处理器对象传递到其中,以构建定制网页渲染处理器对象,并且利用所述定制网页渲染处理器对象替换网页显示控件的原有网页渲染处理器对象。
如图11所示,可选地,根据本发明的实施例,装置1100还可以包括原有网页渲染处理器对象获取模块1105,其可以获取网页显示控件的原有网页渲染处理器对象。
根据本发明的实施例,对于Android,网页渲染处理器对象可以是mPrivateHandler对象,本发明的范围不限于此,其还可以例如是Windows系统中的WindowMessages或其它系统中的类似模块。对于Android系统,网页渲染处理器对象是一种从浏览器内核组件WebKit向WebView发送消息的处理模块,在Android系统中,其是用Handler的方式实现的,起到接收消息事件的作用。由于WebView仅仅是为了显示和接收触摸事件,而真正的操作均在WebKit组件中进行,因此在WebKit组件处理完毕时,会发送一条或者多条通知到WebView控件,以实现及时的刷新和处理。网页渲染处理器对象仅有一个方法,即接收消息方法,对于Android系统为handleMessage方法,由系统调用,发生条件为WebView收到来自WebKit的消息。根据本发明的实施例,原有网页渲染处理器对象获取模块1105可以从网页显示控件中反射原有网页渲染处理器对象,以获取所述原有网页渲染处理器对象。
接下来,定制网页渲染处理器对象构建模块1106生成继承事件处理器类的对象,将网页显示控件的原有网页渲染处理器对象传递到其中,以构建定制网页渲染处理器对象,并且利用所述定制网页渲染处理器对象替换网页显示控件的原有网页渲染处理器对象。
根据本发明的实施例,定制网页渲染处理器对象构建模块1106可以生成一个对象,使其继承事件处理器类的对象。例如,对于Android系统,所述事件处理器类是Handler类。这样,该对象就可以实现其自己的接收消息方法(对于Android系统是handleMessage方法),然后,定制网页渲染处理器对象构建模块1106需要将所述原有网页渲染处理器对象传递到其中,以构建定制网页渲染处理器对象,这样,在使用定制网页渲染处理器对象之后,还可以调用系统的原有网页渲染处理器对象。最后,定制网页渲染处理器对象构建模块1106利用所述定制网页渲染处理器对象替换所述网页显示控件的原有网页渲染处理器对象。
随后,像素值获取模块1108获取网页内容左侧边框的像素值,网页内容移动模块1110根据所述网页内容左侧边框的像素值移动网页内容,并且调用所述原有网页渲染处理器对象执行处理。
根据本发明的实施例,所述缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值可以分别是网页缩放操作结束时缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值,所述显示缩放比例可以是缩放后显示缩放比例,其中像素值获取模块将网页缩放操作结束时缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值以及缩放后显示缩放比例作为参数传递到获取网页内容左侧边框的像素值方法,以获取网页内容左侧边框的第一像素值。根据本发明的实施例,像素值获取模块1108可以在接收到刷新页面消息之后,再获取该第一像素值。根据本发明的实施例,像素值获取模块1108要判断是否接收到刷新页面消息。一般情况下,每发生一次网页的变化,不管这种变化是来自于用户的操作、还是网页的动画、或是网页的脚本,只要网页在屏幕上有内容改变,WebView控件就都会收到刷新页面消息。通常每隔2-3秒、或者用户对网页进行操作、或者网页自身发生了变化,刷新页面消息都会被调用1-10次不等。在Android系统中,该刷新页面消息的编号为105,消息名称为“NEW_PICTURE_MSG_ID”,该消息在其它系统中的编号略有不同。根据本发明的实施例,可以在接收到刷新页面消息之后、下一次再接收到刷新页面消息时开始执行根据本发明的对齐操作,在Android系统中,也即使用Handler的post方法。这是因为若在当次接收到刷新页面消息就进行对齐操作,可能会影响之前的网页缩放操作对页面刷新的效率,因此在下一次接收到刷新页面消息(不超过10ms)时再进行对齐操作是比较理想的。
根据本发明的实施例,像素值获取模块1108获取网页内容左侧边框的像素值的过程包括以下操作。可以参照上述图6来理解像素值获取模块1108的操作。
首先,像素值获取模块1108从缩放管理器对象中反射缩放中点横坐标像素值方法以及缩放中点纵坐标像素值方法,以获取缩放中点的所在视图的横纵坐标像素值。
根据本发明的实施例,对于Android系统,所述缩放管理器对象可以是mZoomManager对象,该对象可以直接或间接地被WebView控件调用,这样就可以将缩放操作从原本就很复杂的WebView控件中抽离出来,成为较为独立的模块,并被WebView控件(甚至其它的控件)所用。其中,在Android2.3.x或更早版本中,这个Java类就是WebView控件类,即WebView类;而在Android3.0及以后的版本,该对象为WebView控件所直接使用的一个Java类的对象,即ZoomManager类的对象。而对于Android系统,所述缩放中点横坐标像素值方法可以是mZoomCenterX方法,所述缩放中点纵坐标像素值方法可以是mZoomCenterY方法。
图7示意性地示出了根据本发明的实施例的缩放中点在网页和可视区域中的相对位置的视图。像素值获取模块1108获取缩放中点的所在视图的横纵坐标像素值,如图7所示,像素值获取模块1108所获取的是缩放中点相对于显示区域左下角顶点O1的横纵坐标像素值(x1,y1)。
图8示意性地示出了根据本发明的实施例的缩放操作开始时和缩放操作结束时的缩放中点的视图。如图8所示,缩放操作开始时缩放中点所在位置的坐标为(x0,y0),而缩放操作结束时缩放中点所在位置的坐标为(x1,y1)。在像素值获取模块1108的操作中,缩放中点可以为缩放操作结束时的缩放中点,即图8中的(x1,y1)。
接下来,像素值获取模块1108调用网页显示控件的获取可视区域横坐标像素值方法和获取可视区域纵坐标像素值方法,以获取可视区域左下顶点在网页中的横纵坐标像素值。根据本发明的实施例,所述获取可视区域横坐标像素值方法可以是getScrollX方法,所述获取可视区域纵坐标像素值方法可以是getScrollY方法。如图7所示,像素值获取模块1108要获取的是可视区域左下顶点O1相对于网页左下顶点O2的横纵坐标像素值(x2,y2)。
之后,像素值获取模块1108从网页显示控件中反射获取内容的横坐标像素值方法和获取内容的纵坐标像素值方法,并且将所述缩放中点的所在视图的横纵坐标像素值与所述可视区域左下顶点在网页中的横纵坐标像素值分别相加并作为参数传递到所述获取内容的横坐标像素值方法和所述获取内容的纵坐标像素值方法,以获取缩放中点在网页中的横坐标像素值以及缩放中点在网页中的纵坐标像素值。
根据本发明的实施例,对于Android系统,所述获取内容的横坐标像素值方法可以是viewToContentX方法,所述获取内容的纵坐标像素值方法可以是viewToContentY方法。像素值获取模块1108将所述缩放中点的所在视图的横纵坐标像素值与所述可视区域左下顶点在网页中的横纵坐标像素值分别相加,可以得到横纵坐标像素值(x1+x2,y1+y2),即,缩放中点相对于网页左下顶点O2的横纵坐标像素值,也就是缩放中点在网页中的横坐标像素值以及缩放中点在网页中的纵坐标像素值。将(x1+x2,y1+y2)作为参数传递到所述获取内容的横坐标像素值方法和所述获取内容的纵坐标像素值方法的目的是去除一些边框、滚动条等像素,从而得到更准确的位置表示。
然后,像素值获取模块1108调用网页显示控件的获取显示缩放比例方法,以获取显示缩放比例。根据本发明的实施例,对于Android系统,所述获取显示缩放比例方法是getScale方法。像素值获取模块1108所要获取的可以是缩放结束后的显示缩放比例。
接着,像素值获取模块1108将所述缩放中点在网页中的横坐标像素值、所述缩放中点在网页中的纵坐标像素值、所述显示缩放比例作为参数传递到获取网页内容左侧边框的像素值方法,以获取网页内容左侧边框的像素值。例如,像素值获取模块1108可以将网页缩放操作结束时缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值以及缩放后显示缩放比例,作为参数传递到获取网页内容左侧边框的像素值方法,以获取网页内容左侧边框的第一像素值。根据本发明的实施例,对于Android系统,所述获取网页内容左侧边框的像素值方法是getBlockLeftEdge方法或nativeGetBlockLeftEdge方法。对于Android4.1.x版本及之后的版本,可以使用getBlockLeftEdge方法,而对于Android4.1.x之前的版本,可以使用nativeGetBlockLeftEdge方法。对于Android系统,可以通过获取Build.VERSION.SDK_INT对象来得到Android系统的版本号。
像素值获取模块1108可以将上述横纵坐标像素值(x1+x2,y1+y2)以及缩放后显示缩放比例作为参数传递到getBlockLeftEdge方法或nativeGetBlockLeftEdge方法,在所返回的网页内容左侧边框的像素值为负数的情况下,表明没有获得网页内容左侧边框的像素值,无法执行对齐操作,此时可以丢弃该像素值。而在所返回的网页内容左侧边框的像素值为正数或零的情况下,表明已经获得了网页内容左侧边框的像素值。
接下来,网页内容移动模块1110根据所述网页内容左侧边框的像素值移动网页内容。根据本发明的实施例,可以将所保存的网页内容左侧边框的像素值(例如上述第一像素值)、所述显示缩放比例(例如上述缩放后显示缩放比例)、可视区域左下顶点在网页中的纵坐标像素值(即,上述y2)作为参数传递到移动可视区域方法,从而在水平方向上移动网页内容。即,仅在水平方向上调整可视区域的位置,而在垂直方向上不变。对于Android系统,所述移动可视区域方法是scrollTo方法或pinScrollTo方法。
根据本发明的实施例,像素值获取模块1108可以将所保存的网页内容左侧边框的像素值减去预先定义的像素值以获得网页内容左侧边框的修正像素值,并且网页内容移动模块1110将所述修正像素值、所述缩放后显示缩放比例、以及可视区域左下顶点在网页中的纵坐标像素值作为参数传递到移动可视区域方法,从而在水平方向上移动网页内容。将所保存的网页内容左侧边框的像素值减去预先定义的像素值的目的是能够确保正常对齐,该预先定义的像素值可以根据实际需要进行选取,例如5像素,即将所保存的网页内容左侧边框的像素值减去5像素,以获得网页内容左侧边框的修正像素值。根据本发明的实施例,当所述修正像素值小于零时,令所述修正像素值为零。然后,网页内容移动模块1110就可以将所述修正像素值、所述缩放后显示缩放比例、以及可视区域左下顶点在网页中的纵坐标像素值(即,上述y2)作为参数传递到移动可视区域方法,从而在水平方向上移动网页内容。
再次重申,在以上操作中所使用的缩放中点可以是缩放操作结束时的缩放中点。
接着,网页内容移动模块1110调用所述原有网页渲染处理器对象执行处理。
下面,描述根据本发明的实施例的一些可选的操作,可以参照图9来理解这些操作。
可选地,根据本发明的实施例,在所述像素值获取模块1108获取网页内容左侧边框的第一像素值之前,还可以获取该网页的网页内容左侧边框的参考像素值;接着,所述像素值获取模块1108判断所述参考像素值是否为正数或零。如果其为正数或零,则使该参考像素值不变。即,如果所述参考像素值为正数或零,则表明所述像素值获取模块1108已经成功获取了网页内容左侧边框的参考像素值。根据本发明的实施例,所述网页的网页内容左侧边框的参考像素值的默认值为一负的预定值,例如“-1”,若所获取的参考像素值为负数,则表明没有成功地获取网页内容左侧边框的像素值。
如果所述参考像素值为负数,则所述像素值获取模块1108基于缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值(例如,如图8所示的(x0,y0))以及缩放前显示缩放比例,获取网页内容左侧边框的像素值,并且在该获取的像素值为正数或零的情况下将其作为网页内容左侧边框的参考像素值。其中,根据本发明的实施例,像素值获取模块1108可以利用与上面描述的操作相同的方式来获取缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值以及缩放前显示缩放比例,并且可以利用与上面描述的操作相同的方式来获取参考像素值,即,所述像素值获取模块1108可以将缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值以及缩放前显示缩放比例作为参数传递到获取网页内容左侧边框的像素值方法,以获取网页内容左侧边框的像素值。根据本发明的实施例,对于Android系统,根据本发明的实施例,对于Android系统,所述获取网页内容左侧边框的像素值方法可以是如上所述的getBlockLeftEdge方法或nativeGetBlockLeftEdge方法。
可选地,根据本发明的实施例,在所述像素值获取模块1108获取网页内容左侧边框的第一像素值之后,在所述网页内容左侧边框的第一像素值为正数或零的情况下,所述网页内容移动模块1110根据该第一像素值移动网页内容。然后,所述网页内容移动模块1110将该第一像素值记录为该网页的网页内容左侧边框的参考像素值。
根据本发明的实施例,所述网页内容移动模块1110可以将所述网页内容左侧边框的像素值(例如,上述第一像素值)、所述显示缩放比例(例如,缩放后显示缩放比例)、可视区域左下顶点在网页中的纵坐标像素值(即,上述y2)作为参数传递到移动可视区域方法,从而在水平方向上移动网页内容。即,仅在水平方向上调整可视区域的位置,而在垂直方向上不变。对于Android系统,所述移动可视区域方法是scrollTo方法或pinScrollTo方法。
而在所述第一像素值为负数的情况下,所述像素值获取模块1108基于缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值(例如,如图8所示的(x0,y0))以及缩放前显示缩放比例,获取网页内容左侧边框的第二像素值。其中,根据本发明的实施例,像素值获取模块1108可以利用与上面描述的操作相同的方式来获取缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值以及缩放前显示缩放比例,并且可以利用与上面描述的操作相同的方式来获取第二像素值。
然后,在所述网页内容左侧边框的第二像素值为正数或零的情况下,所述网页内容移动模块1110根据所述第二像素值移动网页内容,并将该第二像素值记录为该网页的网页内容左侧边框的参考像素值。根据本发明的实施例,所述网页内容移动模块1110可以将所述缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值以及缩放前显示缩放比例传递到获取网页内容左侧边框的像素值方法,以获取网页内容左侧边框的第二像素值。对于Android系统,所述获取网页内容左侧边框的像素值方法可以是如上所述的getBlockLeftEdge方法或nativeGetBlockLeftEdge方法。根据本发明的实施例,所述网页内容移动模块1110可以将所述第二像素值、缩放后显示缩放比例、可视区域左下顶点在网页中的纵坐标像素值(即,上述y2)作为参数传递到移动可视区域方法,从而在水平方向上移动网页内容。即,仅在水平方向上调整可视区域的位置,而在垂直方向上不变。对于Android系统,所述移动可视区域方法可以是如上所述的scrollTo方法或pinScrollTo方法。
而当所述第二像素值为负数时,所述网页内容移动模块1110可以根据所述参考像素值移动网页内容。其中,所述网页内容移动模块1110可以将所述参考像素值、缩放后显示缩放比例、可视区域左下顶点在网页中的纵坐标像素值(即,上述y2)作为参数传递到移动可视区域方法,从而在水平方向上移动网页内容。同样,仅在水平方向上调整可视区域的位置,而在垂直方向上不变,所述移动可视区域方法可以是如上所述的scrollTo方法或pinScrollTo方法。
根据本发明的实施例,在所述像素值获取模块1108执行上述涉及参考像素值的操作的情况下,在网页内容左侧边框的第一像素值为正数或零时,网页内容移动模块1110可以将该第一像素值记录为该网页的网页内容左侧边框的参考像素值,以替换在之前的操作中获得的参考像素值;而在第一像素值为负数的情况下,如果网页内容左侧边框的第二像素值为正数或零,则网页内容移动模块1110将该第二像素值记录为该网页的网页内容左侧边框的参考像素值,以替换在之前的操作中获得的参考像素值。而如果上述条件均不满足,即第一像素值为负数,且第二像素值也为负数,则可以将在之前的操作中获得的参考像素值作为网页内容左侧边框的参考像素值。
可选地,根据本发明的实施例,在所述第一像素值为负数的情况下,在所述像素值获取模块1108获取第二像素值之前,还需要判断缩放结束时的显示缩放比例是否大于缩放前的显示缩放比例,以及缩放前的显示缩放比例是否大于零,只有在这两次判断的结果均为“是”的情况下,才执行获取第二像素值等后续操作。在屏幕宽度不发生变化的情况下,一旦网页进行缩放,网页宽度发生变化,网页显示控件的显示缩放比例也会发生变化。
在根据本发明的实施例的电子设备上网页缩放和对齐的装置1100执行了上述各操作之后,就可以实现在网页缩放后与屏幕的左侧边框对齐的效果,如图10所示,其中示意性地示出了电子设备上网页缩放后对齐的网页的视图。
由于上述各设备(装置)实施例与前述各方法实施例相对应,因此不再对各装置实施例进行详细描述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的装置中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个装置中。可以把实施例中的若干模块组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者模块中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个装置实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的装置中的一些或者全部模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明的实施例公开了A1.一种电子设备上网页缩放和对齐的方法,包括以下步骤:生成继承缩放处理器类的对象,将原有缩放处理器对象传递到其中,以构建定制缩放处理器对象,并且利用定制缩放处理器对象替换原有缩放处理器对象;在检测到缩放操作后,所述缩放处理器对象进行操作,包括缩放开始方法、缩放过程方法和缩放完成方法,其中在缩放完成方法中,将网页文字缩放比例设置为网页显示控件的显示缩放比例,并且执行所述原有缩放处理器对象的缩放完成方法;生成继承事件处理器类的对象,将网页显示控件的原有网页渲染处理器对象传递到其中,以构建定制网页渲染处理器对象,并且利用所述定制网页渲染处理器对象替换网页显示控件的原有网页渲染处理器对象;获取网页内容左侧边框的像素值;以及根据所述网页内容左侧边框的像素值移动网页内容,并且调用所述原有网页渲染处理器对象执行处理。A2.如A1所述的方法,还包括步骤:在所述生成继承缩放处理器类的对象并且将原有缩放处理器对象传递到其中以构建定制缩放处理器对象的步骤之前,获取原有缩放处理器对象,包括:在电子设备的操作系统为Android2.3.x或更早版本的情况下,从网页显示控件中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象;或者在电子设备的操作系统为Android4.0或更新版本的情况下,从网页显示控件中反射并获取缩放管理器对象,从所述缩放管理器对象中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象。A3.如A1所述的方法,还包括步骤:在所述生成继承事件处理器类的对象并且将网页显示控件的原有网页渲染处理器对象传递到其中以构建定制网页渲染处理器对象的步骤之前,获取网页显示控件的原有网页渲染处理器对象,其中从网页显示控件中反射原有网页渲染处理器对象,以获取所述原有网页渲染处理器对象。A4.如A1至A3中的任一项所述的方法,其中所述将网页文字缩放比例设置为网页显示控件的显示缩放比例的步骤包括:在电子设备的操作系统为Android2.3.x或更早版本的情况下,从所述网页显示控件中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象;或者在电子设备的操作系统为Android4.0或更新版本的情况下,从所述缩放管理器对象中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象。A5.如A1至A3中的任一项所述的方法,其中所述获取网页内容左侧边框的像素值的步骤包括:从缩放管理器对象中反射缩放中点横坐标像素值方法以及缩放中点纵坐标像素值方法,以获取缩放中点的所在视图的横纵坐标像素值;调用网页显示控件的获取可视区域横坐标像素值方法和获取可视区域纵坐标像素值方法,以获取可视区域左下顶点在网页中的横纵坐标像素值;从网页显示控件中反射获取内容的横坐标像素值方法和获取内容的纵坐标像素值方法,并且将所述缩放中点的所在视图的横纵坐标像素值与所述可视区域左下顶点在网页中的横纵坐标像素值分别相加并作为参数传递到所述获取内容的横坐标像素值方法和所述获取内容的纵坐标像素值方法,以获取缩放中点在网页中的横坐标像素值以及缩放中点在网页中的纵坐标像素值;调用网页显示控件的获取显示缩放比例方法,以获取显示缩放比例;以及将所述缩放中点在网页中的横坐标像素值、所述缩放中点在网页中的纵坐标像素值、所述显示缩放比例作为参数传递到获取网页内容左侧边框的像素值方法,以获取网页内容左侧边框的像素值。A6.如A5所述的方法,其中所述缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值分别是网页缩放操作结束时缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值,所述显示缩放比例是缩放后显示缩放比例,其中将网页缩放操作结束时缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值以及缩放后显示缩放比例作为参数传递到获取网页内容左侧边框的像素值方法,以获取网页内容左侧边框的第一像素值,其中在所述根据该网页内容左侧边框的像素值移动网页内容的步骤中,在所述网页内容左侧边框的第一像素值为正数或零的情况下,根据该第一像素值移动网页内容,并且将该第一像素值记录为该网页的网页内容左侧边框的参考像素值。A7.如A5所述的方法,其中在所述根据所述网页内容左侧边框的像素值移动网页内容的步骤中,将所保存的网页内容左侧边框的像素值、所述显示缩放比例、可视区域左下顶点在网页中的纵坐标像素值作为参数传递到移动可视区域方法,从而在水平方向上移动网页内容。A8.如A6所述的方法,还包括步骤:在所述网页内容左侧边框的第一像素值为负数的情况下,基于缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值以及缩放前显示缩放比例,获取网页内容左侧边框的第二像素值,在所述网页内容左侧边框的第二像素值为正数或零的情况下,根据所述第二像素值移动网页内容,并将该第二像素值记录为该网页的网页内容左侧边框的参考像素值。A9.如A8所述的方法,其中所述网页的网页内容左侧边框的参考像素值的默认值为一负的预定值,在所述在检测到缩放操作后所述缩放处理器对象进行操作的步骤之前还包括:获取该网页的网页内容左侧边框的参考像素值;判断所述参考像素值是否为正数或零,如果其为正数或零,则该参考像素值不变;如果所述参考像素值为负数,则根据缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值以及缩放前显示缩放比例,获取网页内容左侧边框的像素值,并且在该获取的像素值为正数或零的情况下将其作为网页内容左侧边框的参考像素值。A10.如A9所述的方法,其中当所述第二像素值为负数时,根据所述参考像素值移动网页内容。A11.如A1至A3中的任一项所述的方法,其中所述网页显示控件是Android系统的WebView控件,所述缩放管理器对象是mZoomManager对象,所述缩放处理器对象是mListener对象,所述缩放处理器类是OnScaleGestureListener类,所述文字缩放比例对象是mTextWrapScale对象,所述缩放检测器对象是mScaleDetector对象,所述缩放开始方法、缩放过程方法、缩放完成方法分别为mListener对象的onScaleBegin方法、onScale方法、onScaleEnd方法,所述事件处理器类是Handler类,所述网页渲染处理器对象是mPrivateHandler对象,所述接收消息方法是handleMessage方法,所述缩放中点横坐标像素值方法是mZoomCenterX方法,所述缩放中点纵坐标像素值方法是mZoomCenterY方法,所述获取可视区域横坐标像素值方法是getScrollX方法,所述获取可视区域纵坐标像素值方法是getScrollY方法,所述获取内容的横坐标像素值方法是viewToContentX方法,所述获取内容的纵坐标像素值方法是viewToContentY方法,所述获取显示缩放比例方法是getScale方法,所述获取网页内容左侧边框的像素值方法是getBlockLeftEdge方法或nativeGetBlockLeftEdge方法,所述移动可视区域方法是scrollTo方法或pinScrollTo方法。
本发明的实施例还公开了B12.一种电子设备上网页缩放和对齐的装置,包括:定制缩放处理器对象构建模块,适于生成继承缩放处理器类的对象,将原有缩放处理器对象传递到其中,以构建定制缩放处理器对象,并且利用所述定制缩放处理器对象替换原有缩放处理器对象;缩放操作模块,适于在检测到缩放操作后,利用所述缩放处理器对象进行操作,包括缩放开始方法、缩放过程方法和缩放完成方法,其中在缩放完成方法中,将网页文字缩放比例设置为网页显示控件的显示缩放比例,并且执行所述原有缩放处理器对象的缩放完成方法;定制网页渲染处理器对象构建模块,适于生成继承事件处理器类的对象,将网页显示控件的原有网页渲染处理器对象传递到其中,以构建定制网页渲染处理器对象,并且利用所述定制网页渲染处理器对象替换网页显示控件的原有网页渲染处理器对象;像素值获取模块,适于获取网页内容左侧边框的像素值;以及网页内容移动模块,适于根据所述网页内容左侧边框的像素值移动网页内容,并且调用所述原有网页渲染处理器对象执行处理。B13.如B12所述的装置,还包括原有缩放处理器对象获取模块,适于在所述定制缩放处理器对象构建模块生成继承缩放处理器类的对象并且将原有缩放处理器对象传递到其中以构建定制缩放处理器对象之前,获取原有缩放处理器对象,其中:在电子设备的操作系统为Android2.3.x或更早版本的情况下,原有缩放处理器对象获取模块从网页显示控件中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象;或者在电子设备的操作系统为Android4.0或更新版本的情况下,原有缩放处理器对象获取模块从网页显示控件中反射并获取缩放管理器对象,从所述缩放管理器对象中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象。B14.如B12所述的装置,还包括原有网页渲染处理器对象获取模块,适于在所述定制网页渲染处理器对象构建模块生成继承事件处理器类的对象并且将网页显示控件的原有网页渲染处理器对象传递到其中以构建定制网页渲染处理器对象之前,获取网页显示控件的原有网页渲染处理器对象,其中原有网页渲染处理器对象获取模块从网页显示控件中反射原有网页渲染处理器对象,以获取所述原有网页渲染处理器对象。B15.如权利要求12至14中的任一项所述的装置,其中所述缩放操作模块适于:在电子设备的操作系统为Android2.3.x或更早版本的情况下,从所述网页显示控件中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象;或者在电子设备的操作系统为Android4.0或更新版本的情况下,从所述缩放管理器对象中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象。B16.如B12至B14中的任一项所述的装置,其中所述像素值获取模块适于:从缩放管理器对象中反射缩放中点横坐标像素值方法以及缩放中点纵坐标像素值方法,以获取缩放中点的所在视图的横纵坐标像素值;调用网页显示控件的获取可视区域横坐标像素值方法和获取可视区域纵坐标像素值方法,以获取可视区域左下顶点在网页中的横纵坐标像素值;从网页显示控件中反射获取内容的横坐标像素值方法和获取内容的纵坐标像素值方法,并且将所述缩放中点的所在视图的横纵坐标像素值与所述可视区域左下顶点在网页中的横纵坐标像素值分别相加并作为参数传递到所述获取内容的横坐标像素值方法和所述获取内容的纵坐标像素值方法,以获取缩放中点在网页中的横坐标像素值以及缩放中点在网页中的纵坐标像素值;调用网页显示控件的获取显示缩放比例方法,以获取显示缩放比例;以及将所述缩放中点在网页中的横坐标像素值、所述缩放中点在网页中的纵坐标像素值、所述显示缩放比例作为参数传递到获取网页内容左侧边框的像素值方法,以获取网页内容左侧边框的像素值。B17.如B16所述的装置,其中所述缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值分别是网页缩放操作结束时缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值,所述显示缩放比例是缩放后显示缩放比例,其中像素值获取模块将网页缩放操作结束时缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值以及缩放后显示缩放比例作为参数传递到获取网页内容左侧边框的像素值方法,以获取网页内容左侧边框的第一像素值,其中在所述网页内容左侧边框的第一像素值为正数或零的情况下,所述网页内容移动模块根据该第一像素值移动网页内容,并且将该第一像素值记录为该网页的网页内容左侧边框的参考像素值。B18.如B16所述的装置,其中所述网页内容移动模块适于:将所保存的网页内容左侧边框的像素值、所述显示缩放比例、可视区域左下顶点在网页中的纵坐标像素值作为参数传递到移动可视区域方法,从而在水平方向上移动网页内容。B19.如B17所述的装置,其中所述像素值获取模块还适于:在所述网页内容左侧边框的第一像素值为负数的情况下,基于缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值以及缩放前显示缩放比例,获取网页内容左侧边框的第二像素值,在所述网页内容左侧边框的第二像素值为正数或零的情况下,所述网页内容移动模块根据所述第二像素值移动网页内容,并将该第二像素值记录为该网页的网页内容左侧边框的参考像素值。B20.如B19所述的装置,其中所述网页的网页内容左侧边框的参考像素值的默认值为一负的预定值,所述像素值获取模块还适于在所述缩放操作模块在检测到缩放操作后利用所述缩放处理器对象进行操作之前:获取该网页的网页内容左侧边框的参考像素值;判断所述参考像素值是否为正数或零,如果其为正数或零,则该参考像素值不变;如果所述参考像素值为负数,则根据缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值以及缩放前显示缩放比例,获取网页内容左侧边框的像素值,并且在该获取的像素值为正数或零的情况下将其作为网页内容左侧边框的参考像素值。B21.如B20所述的装置,其中当所述第二像素值为负数时,所述网页内容移动模块根据所述参考像素值移动网页内容。B22.如B12至B14中的任一项所述的装置,其中所述网页显示控件是Android系统的WebView控件,所述缩放管理器对象是mZoomManager对象,所述缩放处理器对象是mListener对象,所述缩放处理器类是OnScaleGestureListener类,所述文字缩放比例对象是mTextWrapScale对象,所述缩放检测器对象是mScaleDetector对象,所述缩放开始方法、缩放过程方法、缩放完成方法分别为mListener对象的onScaleBegin方法、onScale方法、onScaleEnd方法,所述事件处理器类是Handler类,所述网页渲染处理器对象是mPrivateHandler对象,所述接收消息方法是handleMessage方法,所述缩放中点横坐标像素值方法是mZoomCenterX方法,所述缩放中点纵坐标像素值方法是mZoomCenterY方法,所述获取可视区域横坐标像素值方法是getScrollX方法,所述获取可视区域纵坐标像素值方法是getScrollY方法,所述获取内容的横坐标像素值方法是viewToContentX方法,所述获取内容的纵坐标像素值方法是viewToContentY方法,所述获取显示缩放比例方法是getScale方法,所述获取网页内容左侧边框的像素值方法是getBlockLeftEdge方法或nativeGetBlockLeftEdge方法,所述移动可视区域方法是scrollTo方法或pinScrollTo方法。
Claims (30)
1.一种电子设备上网页缩放和对齐的方法,包括以下步骤:
生成继承缩放处理器类的对象,将原有缩放处理器对象传递到其中,以构建定制缩放处理器对象,并且利用定制缩放处理器对象替换原有缩放处理器对象;
在检测到缩放操作后,所述缩放处理器对象进行操作,包括缩放开始方法、缩放过程方法和缩放完成方法,其中在缩放完成方法中,将网页文字缩放比例设置为网页显示控件的显示缩放比例,并且执行所述原有缩放处理器对象的缩放完成方法;
生成继承事件处理器类的对象,将网页显示控件的原有网页渲染处理器对象传递到其中,以构建定制网页渲染处理器对象,并且利用所述定制网页渲染处理器对象替换网页显示控件的原有网页渲染处理器对象;
获取网页内容左侧边框的像素值;以及
根据所述网页内容左侧边框的像素值移动网页内容,并且调用所述原有网页渲染处理器对象执行处理。
2.如权利要求1所述的方法,还包括步骤:在所述生成继承缩放处理器类的对象并且将原有缩放处理器对象传递到其中以构建定制缩放处理器对象的步骤之前,获取原有缩放处理器对象,包括:
在电子设备的操作系统为Android 2.3.x或更早版本的情况下,从网页显示控件中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象;或者
在电子设备的操作系统为Android 4.0或更新版本的情况下,从网页显示控件中反射并获取缩放管理器对象,从所述缩放管理器对象中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象。
3.如权利要求1所述的方法,还包括步骤:在所述生成继承事件处理器类的对象并且将网页显示控件的原有网页渲染处理器对象传递到其中以构建定制网页渲染处理器对象的步骤之前,获取网页显示控件的原有网页渲染处理器对象,其中从网页显示控件中反射原有网页渲染处理器对象,以获取所述原有网页渲染处理器对象。
4.如权利要求1至3中的任一项所述的方法,其中所述将网页文字缩放比例设置为网页显示控件的显示缩放比例的步骤包括:
在电子设备的操作系统为Android 2.3.x或更早版本的情况下,从所述网页显示控件中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象;或者
在电子设备的操作系统为Android 4.0或更新版本的情况下,从缩放管理器对象中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象。
5.如权利要求1至3中的任一项所述的方法,其中所述获取网页内容左侧边框的像素值的步骤包括:
在电子设备的操作系统为Android 2.3.x或更早版本的情况下,从所述网页显示控件中反射缩放中点横坐标像素值方法以及缩放中点纵坐标像素值方法,以获取缩放中点的所在视图的横纵坐标像素值,或者在电子设备的操作系统为Android 4.0或更新版本的情况下,从缩放管理器对象中反射缩放中点横坐标像素值方法以及缩放中点纵坐标像素值方法,以获取缩放中点的所在视图的横纵坐标像素值;
调用网页显示控件的获取可视区域横坐标像素值方法和获取可视区域纵坐标像素值方法,以获取可视区域左下顶点在网页中的横纵坐标像素值;
从网页显示控件中反射获取内容的横坐标像素值方法和获取内容的纵坐标像素值方法,并且将所述缩放中点的所在视图的横纵坐标像素值与所述可视区域左下顶点在网页中的横纵坐标像素值分别相加并作为参数传递到所述获取内容的横坐标像素值方法和所述获取内容的纵坐标像素值方法,以获取缩放中点在网页中的横坐标像素值以及缩放中点在网页中的纵坐标像素值;
调用网页显示控件的获取显示缩放比例方法,以获取显示缩放比例;以及
将所述缩放中点在网页中的横坐标像素值、所述缩放中点在网页中的纵坐标像素值、所述显示缩放比例作为参数传递到获取网页内容左侧边框的像素值方法,以获取网页内容左侧边框的像素值。
6.如权利要求5所述的方法,其中所述缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值分别是网页缩放操作结束时缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值,所述显示缩放比例是缩放后显示缩放比例,其中将网页缩放操作结束时缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值以及缩放后显示缩放比例作为参数传递到获取网页内容左侧边框的像素值方法,以获取网页内容左侧边框的第一像素值,
其中在所述根据该网页内容左侧边框的像素值移动网页内容的步骤中,在所述网页内容左侧边框的第一像素值为正数或零的情况下,根据该第一像素值移动网页内容,并且将该第一像素值记录为该网页的网页内容左侧边框的参考像素值。
7.如权利要求5所述的方法,其中在所述根据所述网页内容左侧边框的像素值移动网页内容的步骤中,将所保存的网页内容左侧边框的像素值、所述显示缩放比例、可视区域左下顶点在网页中的纵坐标像素值作为参数传递到移动可视区域方法,从而在水平方向上移动网页内容。
8.如权利要求6所述的方法,还包括步骤:在所述网页内容左侧边框的第一像素值为负数的情况下,基于缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值以及缩放前显示缩放比例,获取网页内容左侧边框的第二像素值,在所述网页内容左侧边框的第二像素值为正数或零的情况下,根据所述第二像素值移动网页内容,并将该第二像素值记录为该网页的网页内容左侧边框的参考像素值。
9.如权利要求8所述的方法,其中所述网页的网页内容左侧边框的参考像素值的默认值为一负的预定值,在所述在检测到缩放操作后所述缩放处理器对象进行操作的步骤之前还包括:
获取该网页的网页内容左侧边框的参考像素值;
判断所述参考像素值是否为正数或零,如果其为正数或零,则该参考像素值不变;
如果所述参考像素值为负数,则根据缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值以及缩放前显示缩放比例,获取网页内容左侧边框的像素值,并且在该获取的像素值为正数或零的情况下将其作为网页内容左侧边框的参考像素值。
10.如权利要求9所述的方法,其中当所述第二像素值为负数时,根据所述参考像素值移动网页内容。
11.如权利要求1至3中的任一项所述的方法,其中所述网页显示控件是Android系统的WebView控件,所述缩放处理器对象是mListener对象,所述缩放处理器类是OnScaleGestureListener类,所述缩放开始方法、缩放过程方法、缩放完成方法分别为mListener对象的onScaleBegin方法、onScale方法、onScaleEnd方法,所述事件处理器类是Handler类,所述网页渲染处理器对象是mPrivateHandler对象,接收消息方法是handleMessage方法所述获取网页内容左侧边框的像素值方法是getBlockLeftEdge方法或nativeGetBlockLeftEdge方法。
12.如权利要求2所述的方法,其中所述缩放管理器对象是mZoomManager对象,所述缩放检测器对象是mScaleDetector对象。
13.如权利要求4所述的方法,其中所述文字缩放比例对象是mTextWrapScale对象。
14.如权利要求5所述的方法,其中所述缩放中点横坐标像素值方法是mZoomCenterX方法,所述缩放中点纵坐标像素值方法是mZoomCenterY方法,所述获取可视区域横坐标像素值方法是getScrollX方法,所述获取可视区域纵坐标像素值方法是getScrollY方法,所述获取内容的横坐标像素值方法是viewToContentX方法,所述获取内容的纵坐标像素值方法是viewToContentY方法,所述获取显示缩放比例方法是getScale方法。
15.如权利要求7所述的方法,其中所述移动可视区域方法是scrollTo方法或pinScrollTo方法。
16.一种电子设备上网页缩放和对齐的装置,包括:
定制缩放处理器对象构建模块,适于生成继承缩放处理器类的对象,将原有缩放处理器对象传递到其中,以构建定制缩放处理器对象,并且利用所述定制缩放处理器对象替换原有缩放处理器对象;
缩放操作模块,适于在检测到缩放操作后,利用所述缩放处理器对象进行操作,包括缩放开始方法、缩放过程方法和缩放完成方法,其中在缩放完成方法中,将网页文字缩放比例设置为网页显示控件的显示缩放比例,并且执行所述原有缩放处理器对象的缩放完成方法;
定制网页渲染处理器对象构建模块,适于生成继承事件处理器类的对象,将网页显示控件的原有网页渲染处理器对象传递到其中,以构建定制网页渲染处理器对象,并且利用所述定制网页渲染处理器对象替换网页显示控件的原有网页渲染处理器对象;
像素值获取模块,适于获取网页内容左侧边框的像素值;以及
网页内容移动模块,适于根据所述网页内容左侧边框的像素值移动网页内容,并且调用所述原有网页渲染处理器对象执行处理。
17.如权利要求16所述的装置,还包括原有缩放处理器对象获取模块,适于在所述定制缩放处理器对象构建模块生成继承缩放处理器类的对象并且将原有缩放处理器对象传递到其中以构建定制缩放处理器对象之前,获取原有缩放处理器对象,其中:
在电子设备的操作系统为Android 2.3.x或更早版本的情况下,原有缩放处理器对象获取模块从网页显示控件中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象;或者
在电子设备的操作系统为Android 4.0或更新版本的情况下,原有缩放处理器对象获取模块从网页显示控件中反射并获取缩放管理器对象,从所述缩放管理器对象中反射并获取缩放检测器对象,并且从所述缩放检测器对象中反射并获取原有缩放处理器对象。
18.如权利要求16所述的装置,还包括原有网页渲染处理器对象获取模块,适于在所述定制网页渲染处理器对象构建模块生成继承事件处理器类的对象并且将网页显示控件的原有网页渲染处理器对象传递到其中以构建定制网页渲染处理器对象之前,获取网页显示控件的原有网页渲染处理器对象,其中原有网页渲染处理器对象获取模块从网页显示控件中反射原有网页渲染处理器对象,以获取所述原有网页渲染处理器对象。
19.如权利要求16至18中的任一项所述的装置,其中所述缩放操作模块适于:
在电子设备的操作系统为Android 2.3.x或更早版本的情况下,从所述网页显示控件中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象;或者
在电子设备的操作系统为Android 4.0或更新版本的情况下,从缩放管理器对象中反射文字缩放比例对象,并且将网页显示控件的显示缩放比例的值赋予所述文字缩放比例对象。
20.如权利要求16至18中的任一项所述的装置,其中所述像素值获取模块适于:
在电子设备的操作系统为Android 2.3.x或更早版本的情况下,从所述网页显示控件中反射缩放中点横坐标像素值方法以及缩放中点纵坐标像素值方法,以获取缩放中点的所在视图的横纵坐标像素值,或者在电子设备的操作系统为Android 4.0或更新版本的情况下,从缩放管理器对象中反射缩放中点横坐标像素值方法以及缩放中点纵坐标像素值方法,以获取缩放中点的所在视图的横纵坐标像素值;
调用网页显示控件的获取可视区域横坐标像素值方法和获取可视区域纵坐标像素值方法,以获取可视区域左下顶点在网页中的横纵坐标像素值;
从网页显示控件中反射获取内容的横坐标像素值方法和获取内容的纵坐标像素值方法,并且将所述缩放中点的所在视图的横纵坐标像素值与所述可视区域左下顶点在网页中的横纵坐标像素值分别相加并作为参数传递到所述获取内容的横坐标像素值方法和所述获取内容的纵坐标像素值方法,以获取缩放中点在网页中的横坐标像素值以及缩放中点在网页中的纵坐标像素值;
调用网页显示控件的获取显示缩放比例方法,以获取显示缩放比例;以及
将所述缩放中点在网页中的横坐标像素值、所述缩放中点在网页中的纵坐标像素值、所述显示缩放比例作为参数传递到获取网页内容左侧边框的像素值方法,以获取网页内容左侧边框的像素值。
21.如权利要求20所述的装置,其中所述缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值分别是网页缩放操作结束时缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值,所述显示缩放比例是缩放后显示缩放比例,其中像素值获取模块将网页缩放操作结束时缩放中点在网页中的横坐标像素值和在网页中的纵坐标像素值以及缩放后显示缩放比例作为参数传递到获取网页内容左侧边框的像素值方法,以获取网页内容左侧边框的第一像素值,
其中在所述网页内容左侧边框的第一像素值为正数或零的情况下,所述网页内容移动模块根据该第一像素值移动网页内容,并且将该第一像素值记录为该网页的网页内容左侧边框的参考像素值。
22.如权利要求20所述的装置,其中所述网页内容移动模块适于:将所保存的网页内容左侧边框的像素值、所述显示缩放比例、可视区域左下顶点在网页中的纵坐标像素值作为参数传递到移动可视区域方法,从而在水平方向上移动网页内容。
23.如权利要求21所述的装置,其中所述像素值获取模块还适于:在所述网页内容左侧边框的第一像素值为负数的情况下,基于缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值以及缩放前显示缩放比例,获取网页内容左侧边框的第二像素值,在所述网页内容左侧边框的第二像素值为正数或零的情况下,所述网页内容移动模块根据所述第二像素值移动网页内容,并将该第二像素值记录为该网页的网页内容左侧边框的参考像素值。
24.如权利要求23所述的装置,其中所述网页的网页内容左侧边框的参考像素值的默认值为一负的预定值,所述像素值获取模块还适于在所述缩放操作模块在检测到缩放操作后利用所述缩放处理器对象进行操作之前:
获取该网页的网页内容左侧边框的参考像素值;
判断所述参考像素值是否为正数或零,如果其为正数或零,则该参考像素值不变;
如果所述参考像素值为负数,则根据缩放操作开始时缩放中点的横坐标像素值和纵坐标像素值以及缩放前显示缩放比例,获取网页内容左侧边框的像素值,并且在该获取的像素值为正数或零的情况下将其作为网页内容左侧边框的参考像素值。
25.如权利要求24所述的装置,其中当所述第二像素值为负数时,所述网页内容移动模块根据所述参考像素值移动网页内容。
26.如权利要求16至18中的任一项所述的装置,其中所述网页显示控件是Android系统的WebView控件,所述缩放处理器对象是mListener对象,所述缩放处理器类是OnScaleGestureListener类,所述缩放开始方法、缩放过程方法、缩放完成方法分别为mListener对象的onScaleBegin方法、onScale方法、onScaleEnd方法,所述事件处理器类是Handler类,所述网页渲染处理器对象是mPrivateHandler对象,接收消息方法是handleMessage方法所述获取网页内容左侧边框的像素值方法是getBlockLeftEdge方法或nativeGetBlockLeftEdge方法。
27.如权利要求17所述的装置,其中所述缩放管理器对象是mZoomManager对象,所述缩放检测器对象是mScaleDetector对象。
28.如权利要求19所述的装置,其中所述文字缩放比例对象是mTextWrapScale对象。
29.如权利要求20所述的装置,其中所述缩放中点横坐标像素值方法是mZoomCenterX方法,所述缩放中点纵坐标像素值方法是mZoomCenterY方法,所述获取可视区域横坐标像素值方法是getScrollX方法,所述获取可视区域纵坐标像素值方法是getScrollY方法,所述获取内容的横坐标像素值方法是viewToContentX方法,所述获取内容的纵坐标像素值方法是viewToContentY方法,所述获取显示缩放比例方法是getScale方法。
30.如权利要求22所述的装置,其中所述移动可视区域方法是scrollTo方法或pinScrollTo方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310269588.6A CN103324741B (zh) | 2013-06-28 | 2013-06-28 | 一种电子设备上网页缩放和对齐的方法和装置 |
US14/901,512 US10061494B2 (en) | 2013-06-28 | 2014-03-31 | Method and device for webpage zooming on electronic apparatus |
PCT/CN2014/074455 WO2014206125A1 (zh) | 2013-06-28 | 2014-03-31 | 一种电子设备上网页缩放后对齐的方法和装置 |
PCT/CN2014/074454 WO2014206124A1 (zh) | 2013-06-28 | 2014-03-31 | 一种电子设备上网页缩放的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310269588.6A CN103324741B (zh) | 2013-06-28 | 2013-06-28 | 一种电子设备上网页缩放和对齐的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103324741A CN103324741A (zh) | 2013-09-25 |
CN103324741B true CN103324741B (zh) | 2016-12-28 |
Family
ID=49193484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310269588.6A Expired - Fee Related CN103324741B (zh) | 2013-06-28 | 2013-06-28 | 一种电子设备上网页缩放和对齐的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103324741B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10061494B2 (en) | 2013-06-28 | 2018-08-28 | Beijing Qihoo Technology Company Limited | Method and device for webpage zooming on electronic apparatus |
CN107016067A (zh) * | 2017-03-17 | 2017-08-04 | 广州市利迪网络科技有限公司 | 一种页面自动适配方法 |
CN108052677A (zh) * | 2018-01-02 | 2018-05-18 | 武汉斗鱼网络科技有限公司 | 页面处理方法、装置及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101641673B (zh) * | 2007-04-11 | 2012-07-04 | 索尼爱立信移动通讯有限公司 | 按照不同缩放设置来显示信息的方法和相关设备及计算机程序产品 |
CN102779167A (zh) * | 2012-06-21 | 2012-11-14 | 北京奇虎科技有限公司 | 在移动终端中显示网页的方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9195637B2 (en) * | 2010-11-03 | 2015-11-24 | Microsoft Technology Licensing, Llc | Proportional font scaling |
-
2013
- 2013-06-28 CN CN201310269588.6A patent/CN103324741B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101641673B (zh) * | 2007-04-11 | 2012-07-04 | 索尼爱立信移动通讯有限公司 | 按照不同缩放设置来显示信息的方法和相关设备及计算机程序产品 |
CN102779167A (zh) * | 2012-06-21 | 2012-11-14 | 北京奇虎科技有限公司 | 在移动终端中显示网页的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103324741A (zh) | 2013-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103324734B (zh) | 一种电子设备上网页缩放的方法和装置 | |
CN108052365B (zh) | 用户界面的组件生成方法及装置 | |
CN106648337B (zh) | 显示展示列表中内容的方法和装置、电子设备 | |
US8531487B2 (en) | Software for displays with different pixel densities | |
US11354021B2 (en) | Method, device, terminal and storage medium for displaying icons | |
CN105893602A (zh) | 用于终端浏览器的网页中图表的全屏显示方法及系统 | |
US8754890B2 (en) | Graphical interface with data presence indicators | |
US10061494B2 (en) | Method and device for webpage zooming on electronic apparatus | |
CN111949360A (zh) | 用户界面适配的方法及装置、电子设备、存储介质 | |
CN103324741B (zh) | 一种电子设备上网页缩放和对齐的方法和装置 | |
CN105988793A (zh) | 用于屏幕显示设备的图像展示方法及装置 | |
US20130239067A1 (en) | Fast cursor location | |
CN103336818B (zh) | 一种电子设备上网页缩放后对齐的方法和装置 | |
CN103324743B (zh) | 一种电子设备上网页缩放和对齐的方法和装置 | |
CN110781425B (zh) | 移动端h5页面的显示方法、装置、设备及存储介质 | |
US9678645B2 (en) | Interactive map markers | |
CN103324738B (zh) | 一种电子设备上网页缩放后对齐的方法和装置 | |
CN104516621A (zh) | 一种显示光标的方法及装置 | |
US20100299629A1 (en) | Process for displaying a portion of a history graph selected by a user | |
CN111176530A (zh) | 微信小程序中3d模型展示方法及装置 | |
CN107729010A (zh) | 视图显示方法、装置、计算设备以及存储介质 | |
CN106919375B (zh) | 一种移动终端设备上的屏幕自适应方法及系统 | |
CN108196805B (zh) | 一种拼接墙显示方法及装置 | |
EP2608003A1 (en) | Method and device for movement of image object | |
CN103336819B (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: 20161228 |
|
CF01 | Termination of patent right due to non-payment of annual fee |