一种终端设备的防抖显示方法及能够防抖显示的终端设备与流程

文档序号:11807358阅读:166来源:国知局
一种终端设备的防抖显示方法及能够防抖显示的终端设备与流程
本申请涉及防抖技术,特别是涉及一种终端设备的防抖显示方法,以及一种能够防抖显示的终端设备。

背景技术:
目前,各种移动设备,如手机、平板电脑、笔记本电脑等,大多具有便携和灵活移动的特性,可以不受地域和环境的限制而自由使用。因此,使用手机、平板电脑、笔记本电脑等移动设备在汽车、火车轮船、飞机等交通工具上阅读小说、浏览网页、观看视频等操作,已经是一种非常普遍的行为。但是,这种行为的背后都存在着一个无法克服的问题:随着交通工具的移动,观看者的眼睛和设备的屏幕之间无法保持相对静止,从而造成视线模糊,如果长时间用肉眼观看不断晃动的画面,很容易造成观看者不适,如晕车、晕船等,如果长期保持这种习惯,还有可能造成观看者的视力下降。因此,目前需要解决的问题是,如何使终端设备在移动环境下能够防抖动显示内容,从而避免观看不适的问题。

技术实现要素:
本申请提供了一种终端设备的防抖显示方法及能够防抖显示的终端设备,以解决在移动环境下观看终端设备的屏幕显示内容所带来的不适问题。为了解决上述问题,本申请公开了一种终端设备的防抖显示方法,包括:获取设备显示区域的当前位置信息;监测设备的运动状态;当监测到设备发生相对位移时,计算设备的位移信息;根据所述设备显示区域的当前位置信息和设备的位移信息,计算设备显 示区域的更新位置信息;将设备显示区域从所述当前位置调整到所述更新位置。优选地,将设备显示区域从所述当前位置调整到所述更新位置的过程中,还包括:检测设备显示区域是否移动到了屏幕边界之外,如果是,则停止移动。优选地,所述检测设备显示区域是否移动到了屏幕边界之外,包括:检测设备显示区域移动到屏幕边界外的部分是否超过预设范围,如果已超过,则认为设备显示区域已移动到屏幕边界之外;如果未超过,则认为设备显示区域未移动到屏幕边界之外。优选地,所述相对位移包括:平行于设备屏幕的水平位移,和/或垂直位移,和/或旋转位移。优选地,所述监测设备的运动状态,包括:通过设备中的重力感应器或陀螺仪来监测设备的加速度,并通过所述加速度的变化来监测设备的运动状态,其中,所述加速度包括线加速度和角加速度。优选地,当设备发生水平或垂直位移时,所述设备的位移信息包括水平或垂直位移距离;所述计算设备的位移信息,包括:根据所述设备的线加速度和运动时间计算设备的水平或垂直位移距离。优选地,当设备发生旋转位移时,所述设备的位移信息包括旋转角度;所述计算设备的位移信息,包括:根据所述设备的角加速度和运动时间计算设备的旋转角度。优选地,所述将设备显示区域从所述当前位置调整到所述更新位置,包括:根据所述设备的加速度调整设备显示区域的加速度,并以该调整后的加速度将设备显示区域从所述当前位置移动到所述更新位置。本申请还提供了一种能够防抖显示的终端设备,包括:当前位置获取模块,用于获取设备显示区域的当前位置信息;运动监测模块,用于监测设备的运动状态;位移计算模块,用于当所述运动监测模块监测到设备发生相对位移时,计算设备的位移信息;更新位置计算模块,用于根据所述设备显示区域的当前位置信息和设备 的位移信息,计算设备显示区域的更新位置信息;位置修正模块,用于将设备显示区域从所述当前位置调整到所述更新位置。优选地,所述终端设备还包括:边界测试模块,用于检测设备显示区域是否移动到了屏幕边界之外,如果是,则停止移动;所述边界测试模块通过以下方式进行检测:检测设备显示区域移动到屏幕边界外的部分是否超过预设范围,如果已超过,则认为设备显示区域已移动到屏幕边界之外;如果未超过,则认为设备显示区域未移动到屏幕边界之外。优选地,所述相对位移包括:平行于设备屏幕的水平位移,和/或垂直位移,和/或旋转位移。优选地,所述运动监测模块为重力感应器或陀螺仪;通过设备中的重力感应器或陀螺仪来监测设备的加速度,并通过所述加速度的变化来监测设备的运动状态,其中,所述加速度包括线加速度和角加速度。与现有技术相比,本申请包括以下优点:首先,本申请利用加速计或陀螺仪等运动监测模块,可以监测终端设备的运动状态,当终端设备受外力影响发生位移时,计算出设备的位移信息,然后利用该位移信息调整设备显示区域的位置,从而改变显示内容在设备屏幕中的位置、角度、大小等,保证要显示的内容与观看者的眼睛相对静止,从而降低甚至消除由于环境因素导致的不适及对观看者的视力的影响。其次,本申请动态地在设备屏幕中移动要显示的内容的位置、角度、大小的过程中,还会进行边界测试,即检测设备显示区域是否移动到了屏幕边界之外。这种边界测试可以防止显示区域离开屏幕,必要时,甚至可以让一部分内容暂时移到屏幕之外,保证大部分内容保持相对稳定的显示输出,从而达到更好地防抖效果。再次,带有重力感应器的终端设备即可实现防抖动的效果,带陀螺仪的终端设备可以达到最佳的防抖效果。当然,实施本申请的任一产品不一定需要同时达到以上所述的所有优点。附图说明图1是本申请实施例所述一种终端设备的防抖显示方法流程图;图2.1是本申请实施例中终端设备在正常状态下的示意图;图2.2是本申请实施例中终端设备在顺时针旋转状态下,设备显示区域的位置尚未进行修正的示意图;图2.3是本申请实施例中终端设备在逆时针旋转状态下,设备显示区域的位置尚未进行修正的示意图;图3是本申请实施例所述一种能够防抖显示的终端设备的结构图;图4是本申请另一实施例所述一种能够防抖显示的终端设备的结构图。具体实施方式为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。本申请提供了一种能够防抖显示的终端设备,以及一种防抖显示方法和装置,根据移动设备的重力感应器或陀螺仪提供的设备运动数据,动态在设备屏幕中移动要显示的内容的位置、角度,抵消设备的屏幕移动导致的晃动,使用户能有更佳的观看内容的体验,降低由于屏幕晃动带来的不适影响。下面通过实施例进行详细说明。参照图1所示,是本申请实施例所述一种终端设备的防抖显示方法流程图。步骤101,获取设备显示区域的当前位置信息,并监测设备的运动状态;实际应用中,带有重力感应器的终端设备,如加速计,或者是带有陀螺仪的终端设备,均可监测设备的运动状态。加速计又名加速度传感器,是一种能够测量加速力的电子设备。加速力就是当物体在加速过程中作用在物体上的力,就好比地球引力,也就是重力。加速力可以是个常量,比如g,也可以是变量。加速计有两种:一种是角加速度计,它是陀螺仪(角速度传感器)的一种改进;另一种就是线加速度计。陀螺仪是利用高速回转体的动量矩敏感壳体相对惯性空间绕正交于自 转轴的一个或二个轴的角运动监测模块。此外,利用其他原理制成的角运动监测模块起同样功能的也称为陀螺仪。开启设备中的重力感应器或陀螺仪后,获取设备显示区域的当前位置信息,并开始监测设备。所述设备显示区域是指设备的显示屏中显示内容的区域,设备显示区域的当前位置是指在当前情况下,设备显示区域在屏幕中的位置。利用终端设备中的重力感应器或陀螺仪,可通过以下步骤来监测设备的运动状态:通过设备中的重力感应器或陀螺仪来监测设备的加速度,并通过所述加速度的变化来监测设备的运动状态。其中,所述加速度可以包括线加速度和角加速度。当终端设备的加速度发生变化时,表明该设备的运动状态发生改变,如左右移动、垂直上下移动、斜方向上下移动、顺时针旋转或逆时针旋转等。其中,如果是陀螺仪,则监测设备的角加速度;如果是重力感应器,一般用来监测设备的线加速度,但也可以监测角加速度。相比较而言,带有重力感应器的终端设备即可实现防抖动的效果,带陀螺仪的终端设备可以达到最佳的防抖效果。步骤102,当监测到设备发生相对位移时,计算设备的位移信息;如前所述,如果终端设备受外力影响发生晃动,则可以监测到设备的加速度发生变化,由此可以表明设备发生位移,此时通过计算出合理的参数来控制屏幕中显示的内容的具体位置。需要说明的是,设备发生的位移是一种相对位移,是相对于设备屏幕而言的。因为随着汽车、火车等交通工具的移动,设备和使用该设备的观察者都会移动,但设备相对于观察者是静止的。所以当观看者的眼睛和设备的屏幕之间无法保持相对静止时,才会发生所述的相对位移。换而言之,所述相对位移是指相对于原设备屏幕所在平面发生的位移。更进一步地,在二维空间上,所述相对位移可以包括平行于设备屏幕的水平位移,垂直位移,旋转位移。在三维空间上,所述相对位移可以不平行于原设备屏幕,可以与原设 备屏幕所在的平面有一个夹角,这个夹角可以通过重力感应器或陀螺仪监测角加速度计算出来。为了简化计算,下面以二维空间的计算为例。具体的,所述计算设备的位移信息可通过以下步骤实现:根据所述设备的加速度和运动时间计算设备的位移信息。例如,采用重力感应器或陀螺仪可以直接获得加速度值,然后再结合加速度开始变化到变化结束的运动时间,就可以计算出设备的位移信息。当设备发生水平(如左右)或垂直(如上下)位移时,所述设备的位移信息包括水平或垂直位移距离,还可以包括位移方向等信息,例如,左移或右移的距离等。因此,可以根据所述设备的线加速度和运动时间计算设备的水平或垂直位移距离。当设备发生旋转位移时,所述设备的位移信息包括旋转角度,还可以包括旋转方向等信息,例如,顺时针或逆时针旋转的角度、旋转并移动的距离等。因此,可以根据所述设备的角加速度和运动时间计算设备的旋转角度。更复杂的,如果设备发生了上述两种叠加的位移,即不仅水平或垂直移动,还进行了旋转,则设备的位移信息包括位移距离和旋转角度。其中,旋转角度可根据所述设备的角加速度和运动时间计算得出,位移距离可根据所述设备的线加速度和运动时间计算得出。此外,设备还可能发生斜方向的上下移动,此时的线加速度与水平坐标x轴有一夹角,该夹角可以通过重力感应器或陀螺仪监测出来。此时计算位移距离时,需要将监测出来的线加速度按照所述夹角分别映射到x轴坐标和y轴坐标上,然后分别根据运动时间计算出x轴和y轴的位移距离。需要说明的是,设备的位移信息也相当于设备显示区域的位移信息,因为计算过程中默认为两者的重心重合,所以计算出设备的位移信息,也即获得了设备显示区域的位移信息。步骤103,根据所述设备显示区域的当前位置信息和设备的位移信息,计算设备显示区域的更新位置信息;所述更新位置即为设备发生晃动后设备显示区域需要修正的位置,可通 过以下公式计算设备显示区域的更新位置信息:设备显示区域的更新位置信息=设备显示区域的当前位置信息+设备的位移信息(也即设备显示区域的位移信息)当然,上述计算公式是一种非常简单的计算方式,通常适用于水平或垂直移动,如果是旋转等稍复杂的移动,也可以通过其他计算方式进行计算。并且,对于水平或垂直移动,也可以由其他计算方式实现。总之,本申请的保护范围不应限定于上述计算公式。步骤104,将设备显示区域从所述当前位置调整到所述更新位置。获得更新位置后,可通过以下步骤进行设备显示区域的位置修正:根据所述设备的加速度调整设备显示区域的加速度,并以该调整后的加速度将设备显示区域从所述当前位置移动到所述更新位置。这种通过控制加速度的移动方式,可以使设备显示区域的移动速度尽量与设备本省的移动贴近,进而达到更好的防抖效果。参照图2.1、2.2和2.3所示,分别是正常状态、顺时针旋转状态和逆时针旋转状态下,设备显示区域的位置尚未进行修正的示意图。其中,有图像的方框区域表示设备显示区域。如图所示,如果设备发生顺时针或逆时针旋转,现有技术中,设备本身进行了旋转,但屏幕中的显示区域仍旧处于原来的位置和状态。但是本申请实施例中(图中未示出),经过防抖处理,设备显示区域也会在尽量短的时间内跟随设备进行旋转,从而与设备保持一贯的相对位置,这样,可以保证要显示的内容与观看者的眼睛相对静止,从而降低甚至消除由于环境因素导致的不适及对观看者的视力的影响。此外,较佳地,在上述将设备显示区域从所述当前位置调整到所述更新位置的过程中,为了达到更好的防抖显示效果,还可以加入以下的边界测试,即:在设备显示区域的移动过程中,检测设备显示区域是否移动到了屏幕边界之外,如果是,则停止移动;如果否,则继续移动,直到移动到所述更新 位置。边界测试可以防止显示区域离开屏幕。由于设备显示区域的位置在屏幕的中央,但是不想让显示区域的任何一边移动到屏幕外面,所以移动过程中需要将显示区域的大小考虑进来。实际应用中,可以利用位移距离来检查当前的显示区域是不是落在左右边界里面。此外,必要时还可以让一部分显示内容暂时移到屏幕之外,保证大部分内容保持相对稳定的显示输出,从而达到防抖的效果。为此,可通过以下步骤实现:检测设备显示区域移动到屏幕边界外的部分是否超过预设范围,如果已超过,则认为设备显示区域已移动到屏幕边界之外;如果未超过,则认为设备显示区域未移动到屏幕边界之外。所述预设范围限定了显示内容可以移到屏幕之外的部分是多少,设备的屏幕大小不同,该预设范围也不同。综上所述,本申请实施例解决了在移动环境下观看移动设备的屏幕显示内容时所带来的不适及视力健康问题,提升了在移动环境下观看设备屏幕的体验。基于以上内容,为了更清楚地说明上述防抖显示方法,下面列举出一种示例代码,以iOS系统的重力加速计方式为例,具体如下:首先,在接收加速计输入的层添加加速计方法。在使用加速计之前开启重力感应计,方法为:self.isAccelerometerEnabled=YES;//设置layer是否支持重力计感应,打开重力感应支持,会得到accelerometer:didAccelerate:的回调。开启此方法以后设备才会对重力进行检测,并自动调用“accelerometer:didAccelerate”方法,在该方法中处理由于位移产生的事件:_view.position.x实际上调用的是位置的获取方法(gettermethod):[_viewposition],这个方法会获取当前显示框的临时位置信息。上述一行代码实际上是在尝试着改变这个临时CGPoint中成员变量x的值。其中,显示区域的坐标变化速度可通过以下代码实现:边界测试后,将显示区域的contentSize考虑进来,并用计算得到的imageWidthHalved值来检查当前的显示区域是不是落在左右边界里面。以上时处理左右移动时的防抖方法,上下移动与此类似,旋转移动再增 加旋转角度的处理,在此不一一赘述。在实际应用中,需要根据设备的屏幕大小、反应速度等具体情况做细微调整。需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请所必需的。基于上述方法实施例的说明,本申请还提供了相应的能够防抖显示的终端设备实施例。参照图3所示,是本申请实施例所述一种能够防抖显示的终端设备的结构图。为了在移动环境中进行防抖显示,所述终端设备可以包括以下模块:当前位置获取模块10,用于获取设备显示区域的当前位置信息;运动监测模块20,用于监测设备的运动状态;位移计算模块30,用于当所述运动监测模块20监测到设备发生相对位移时,计算设备的位移信息;更新位置计算模块40,用于根据所述设备显示区域的当前位置信息和设备的位移信息,计算设备显示区域的更新位置信息;位置修正模块50,用于将设备显示区域从所述当前位置调整到所述更新位置。其中,在二维空间中,所述相对位移可以是平行于设备屏幕的水平位移,垂直位移,旋转位移。其中,所述运动监测模块可以为重力感应器(如加速计)或陀螺仪。通过设备中的重力感应器或陀螺仪来监测设备的加速度,并通过所述加速度的变化来监测设备的运动状态。其中,所述加速度包括线加速度和角加速度。所述带有重力感应器的终端设备即可实现防抖动的效果,带陀螺仪的终端设备可以达到最佳的防抖效果。优选地,在另一实施例中,所述位移计算模块30可以根据所述设备的加速度和运动时间计算设备的位移信息。其中,当设备发生水平或垂直位移时,所述设备的位移信息包括位移距离等信息;所述位移计算模块30可以根据所述设备的线加速度和运动时间计算设备的水平或垂直位移距离。当设备发生旋转位移时,所述设备的位移信息包括旋转角度等信息。所述位移计算模块30可以根据所述设备的角加速度和运动时间计算设备的旋转角度。优选地,在另一实施例中,所述位置修正模块50根据所述设备的加速度调整设备显示区域的加速度,并以该调整后的加速度将设备显示区域从所述当前位置移动到所述更新位置。优选地,在另一实施例中,如图4所示,所述终端设备还可以包括边界测试模块60,用于检测设备显示区域是否移动到了屏幕边界之外,如果是,则停止移动。所述边界测试模块60可通过以下方式进行检测:检测设备显示区域移动到屏幕边界外的部分是否超过预设范围,如果已超过,则认为设备显示区域已移动到屏幕边界之外;如果未超过,则认为设备显示区域未移动到屏幕边界之外。这种边界测试可以防止显示区域离开屏幕,必要时甚至可以让一部分内容暂时移到屏幕之外,保证大部分内容保持相对稳定的显示输出,从而达到更好地防抖效果。综上所述,上述终端设备利用加速计或陀螺仪等运动监测模块,可以监测终端设备的运动状态,当终端设备受外力影响发生位移时,计算出设备的位移信息,然后利用该位移信息调整设备显示区域的位置,从而改变显示内容在设备屏幕中的位置、角度、大小等,保证要显示的内容与观看者的眼睛相对静止,从而降低甚至消除由于环境因素导致的不适及对观看者的视力的影响。对于上述终端设备实施例而言,由于其与方法实施例基本相似,所以描 述的比较简单,相关之处参见图1所示方法实施例的部分说明即可。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了 基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。以上对本申请所提供的一种终端设备的防抖显示方法及能够防抖显示的终端设备,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1