一种屏幕滚动的方法和装置技术领域
本发明涉及触摸屏控制领域,特别涉及一种屏幕滚动的方法和装置。
背景技术
触控屏(Touch panel)又称为触控面板,是个可接收触头等输入讯号的感应式液晶显示装置,当接触了屏幕上的图形按钮时,屏幕上的触觉反馈系统可根据预先编程的程式驱动各种连结装置,可用以取代机械式的按钮面板,并借由液晶显示画面制造出生动的影音效果。
在目前,为了适应大屏幕终端的需求,并且增加终端的可玩性,越来越多的终端开始使用触摸屏。例如,目前使用Android(安卓)操作系统的手机,基本上都使用触摸屏作为手机屏幕。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
由于采用触摸屏,终端的按键较少或没有,导致屏幕间的切换不便。
发明内容
为了解决多屏幕间的切换不便的问题,本发明实施例提供了一种屏幕滚动的方法和装置。所述技术方案如下:
一种屏幕滚动的方法,所述方法包括:
获取触摸屏上触点的初始位置;
当所述触点的位置在所述触摸屏上沿着目标方向移动时,获取所述触点的实时位置;
根据所述触点的初始位置和实时位置计算得出所述触点沿所述目标方向移动的距离;
判断所述触点沿所述目标方向移动的距离是否大于指定值;
如果所述触点沿所述目标方向移动的距离大于所述指定值,根据所述触点移动的距离绘制当前屏幕画面;
当所述触点消失时,根据所述触点沿所述目标方向移动的距离确定距离当前屏幕最近的一屏屏幕画面,在所述当前屏幕上绘制所述最近的一屏屏幕画面。
一种屏幕滚动的装置,所述装置包括:
第一获取模块,用于获取触摸屏上触点的初始位置;
第二获取模块,用于当所述触点的位置在所述触摸屏上沿着目标方向移动时,获取所述触点的实时位置;
距离计算模块,用于根据所述触点的初始位置和实时位置计算得出所述触点沿所述目标方向移动的距离;
第一判断模块,用于判断所述触点沿所述目标方向移动的距离是否大于指定值;
绘制模块,用于当所述判断模块判断得出所述触点沿所述目标方向移动的距离大于所述指定值时,根据所述触点移动的距离绘制当前屏幕画面;
屏幕画面滚动模块,用于当所述触点消失时,根据所述触点沿所述目标方向移动的距离确定距离当前屏幕最近的一屏屏幕画面,在所述当前屏幕上绘制所述最近的一屏屏幕画面。
本发明实施例提供的技术方案带来的有益效果是:通过获取触点在触摸屏上的初始位置和触点在沿着目标方向移动时的实时位置,根据触点在触摸屏上沿着目标方向移动的距离绘制当前屏幕画面,当触点消失时时,使得当前屏幕自动滚动到最近一屏的屏幕画面,提供了一种屏幕滚动的方法,使得具有触摸屏的终端屏幕实现了屏幕的滚动,并使用户对具有触摸屏的终端的操纵更加方便。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1中提供的一种屏幕滚动的方法的流程示意图;
图2是本发明实施例2中提供的当前终端屏幕的屏幕画面示意图;
图3是本发明实施例2中提供的一种屏幕滚动的方法的流程示意图;
图4是本发明实施例2中提供的当用户手指按下时当前终端屏幕的屏幕画面示意图;
图5是本发明实施例2中提供的当用户手指向右滑动时当前终端屏幕的屏幕画面示意图;
图6是本发明实施例2中提供的滚动到最近一屏屏幕画面后的当前终端屏幕的屏幕画面示意图;
图7是本发明实施例3中提供的一种屏幕滚动的装置的结构示意图;
图8是本发明实施例3中提供的一种屏幕滚动的装置的第二种结构示意图;
图9是本发明实施例3中提供的一种屏幕滚动的装置中的屏幕画面滚动模块的结构示意图;
图10是本发明实施例3中提供的一种屏幕滚动的装置的第三种结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
本实施例1提供了一种屏幕滚动的方法,如图1所示,该方法具体包括:
101、获取触摸屏上触点的初始位置;
102、当触点的位置在触摸屏上沿着目标方向移动时,获取触点的实时位置;
103、根据触点的初始位置和实时位置计算得出触点沿目标方向移动的距离;
104、判断触点沿目标方向移动的距离是否大于指定值,如果是,执行步骤105;
105、根据触点移动的距离绘制当前屏幕画面;
106、当触点消失时,根据触点沿目标方向移动的距离确定距离当前屏幕最近的一屏屏幕画面,在当前屏幕上绘制最近的一屏屏幕画面。
本发明实施例通过获取触点在触摸屏上的初始位置和触点在沿着目标方向移动时的实时位置,根据触点在触摸屏上沿着目标方向移动的距离绘制当前屏幕画面,当触点消失时时,使得当前屏幕自动滚动到最近一屏的屏幕画面,提供了一种屏幕滚动的方法,使得具有触摸屏的终端屏幕实现了屏幕的滚动,并使用户对具有触摸屏的终端的操纵更加方便。
实施例2
本实施例2提供了一种屏幕滚动的方法,是对实施例1的具体说明。
在本实施例中,以对使用Android操作系统的触摸屏终端进行屏幕滚动为例进行说明。
如图2所示,当前终端中共存在5层屏幕界面(如图2中黑色实线所示),从左至右分别为第一屏幕界面、第二屏幕界面、第三屏幕界面、第四屏幕界面、第五屏幕界面,使用虚线框表示当前终端屏幕,当前终端屏幕上停留的位置为第三层屏幕界面;
在本实施例中,当终端获取到触摸屏被按下的指令时,终端检测得到的触摸屏被按下的位置为触点,并且,在本实施例中使用坐标表示触点的位置,设定终端屏幕宽度为w个像素,初始时,以第一屏幕界面的左上顶点为原点(坐标为0);将当前屏幕的左上顶点坐标作为当前屏幕的坐标,设置为x。
如图2中所示,当前屏幕的坐标x为2w,当使用手指在终端屏幕上按下并向右滚动n个像素时,x坐标变为2w-n。
如图3所示,一种屏幕滚动的方法,具体包括:
201、当用户手指在触摸屏上按下时,检测得到触点的初始位置,并记录初始位置的坐标为初始坐标;
具体地,如图4所示,当用户手指在触摸屏按下时,终端检测得到用户手指与触摸屏的触点的初始位置,触发终端操作系统提供的具有位置记录功能的模块记录上述初始位置的坐标。
例如,在本实施例中,终端安装有Android操作系统,则使用Android操作系统提供的控件onInterceptTouchEvent方法,记录下当前用户手指在触摸屏上的触点所处位置的初始坐标,并设置onInterceptTouchEvent返回值Flase。
进一步地,本步骤还可以包括:
将第一坐标提供给速度采集器。
其中,速度采集器具体的为Android操作系统提供的接口VelocityTracker。
202、当用户的手指向目标方向移动时,获取触点的实时位置,并记录实时位置的坐标为实时坐标;
在本实施例中,如图5所示,当用户的手指向右移动时,记录用户手指在触摸屏上的触点所处的实时位置的坐标为当前坐标。
203、判断用户手指在触摸屏上沿目标方向移动的距离是否大于指定值,如果是,执行步骤204,如果不是,不执行任何操作;
其中,用户手指在触摸屏上移动的距离,具体的为将触点的初始坐标和实时坐标取差值,并取该差值的绝对值,该绝对值即为用户手指在触摸屏上沿目标方向移动的距离,在本实施例中,由于坐标以像素为单位,因此,用户手指在触摸屏上沿目标方向移动的距离也以像素为单位。
指定值为在终端操作系统中根据屏幕滚动的精度预设的值,用以判别是否进行屏幕滑动。
204、根据用户手指向目标方向移动的距离绘制屏幕;
具体地,当用户手指在触摸屏上按下并向右移动时,终端屏幕所显示的第三屏幕整体向右移动,并根据用户手指向右移动的像素消除第三屏幕的相应部分,显示第二屏幕的相应部分,具体如图5所示。
在本实施例中,根据用户手指向目标方向移动的距离绘制屏幕,具体包括:
当初始坐标和当前坐标的差值的绝对值大于指定值时,onInterceptTouchEvent返回值为true,将当前坐标提供给速度采集器,根据触点的初始坐标和实时坐标的差值的绝对值得到用户手指在触摸屏上移动的像素,例如,假设用户手指在触摸屏上滚动的像素为n,则根据用户手指在触摸屏上移动的像素为n计算出当前屏幕的坐标为x-n,根据当前屏幕的坐标绘制当前屏幕。
205、判断触点是否消失,如果是,执行步骤206,如果不是,返回步骤204;
在本实施例中,判断触点是否消失,具体的为:
判断触摸屏上的压力是否消失,即用户是否松开手指。
206、将当前屏幕滚动到最近一屏的屏幕画面;
其中,将当前终端屏幕滚动到最近一屏的屏幕画面,具体包括:
206-1、计算用户手指松开时当前屏幕的滚动速度v;
其中,滚动速度v具体为速度采集器根据用户当前手指的移动速度获得。
206-2、根据滚动速度v计算当前屏幕在默认减速度a1下能够滚动的距离d2;
在本实施例中,具体的使用公式1和公式2计算得到距离d2:
v=a1t      (公式1)
(公式2)
/206-3、根据当前屏幕的坐标计算到达最近一屏的屏幕画面的距离d1;
206-4、判断距离d2是否小于距离d1,如果是,执行步骤206-5,如果不是,执行步骤206-6;
206-5、根据距离d1计算当前屏幕滚动的减速度a2,使滚动速度为0时当前屏幕滚动到最近一屏屏幕画面,完成屏幕滚动;
在本实施例中,具体的使用公式3和公式4计算减速度a2:
v=a2t         (公式3)
(公式4)
206-6、根据距离d1计算在默认减速度a1下当前屏幕滚动到最近一屏屏幕画面所需的时间t1,执行步骤206-7;
在本实施例中,具体的使用公式5和公式6计算当前终端屏幕滚动到最近一屏屏幕画面所需的时间t1:
v=a1t1        (公式5)
(公式6)
206-7、根据默认减速度a1计算当滚动速度为0时当前屏幕可滚动的距离d3,执行步骤206-8;
在本实施例中,具体的使用公式7和公式8计算当滚动速度为0时当前屏幕可滚动的距离d3:
v=a1t       (公式7)
(公式8)
206-8、判断距离d3是否大于d2,如果是,执行步骤206-9,如果不是,执行步骤206-10;
206-9、当前屏幕输出反弹效果,并滚动到最近一屏屏幕画面,完成屏幕滚动;
在本实施例中,当前终端屏幕输出反弹效果,具体包括:
a、根据最近一屏屏幕画面滚动到当前终端屏幕边界后经过的时间t计算得到时间t2;
其中,时间t2=(0.3333+0.6667*t)-1。
b、根据时间t2和距离d1计算反弹距离X′;
其中,X′=(t2*t2*(3*t2+2)+1.0)*d1;
c、将X′与用户松开手指时当前屏幕的坐标相加得到当前屏幕的反弹坐标,根据当前屏幕的反弹坐标绘制屏幕画面。
重复步骤a-c直至反弹时间超过1秒。
206-10、将距离d3和用户松开手指时所处的坐标相加得到当前屏幕的坐标,根据当前屏幕的坐标绘制最近一屏屏幕画面,完成屏幕滚动。
其中,完成当前屏幕的屏幕滚动后的效果如图6所示。
207、在终端缓存中绘制当前屏幕画面的左右两个屏幕画面。
本发明实施例通过获取触点在触摸屏上的初始位置和触点在沿着目标方向移动时的实时位置,根据触点在触摸屏上沿着目标方向移动的距离绘制当前屏幕画面,当触点消失时时,使得当前屏幕自动滚动到最近一屏的屏幕画面,提供了一种屏幕滚动的方法,使得具有触摸屏的终端屏幕实现了屏幕的滚动,并使用户对具有触摸屏的终端的操纵更加方便。
实施例3
本发明实施例提供了一种屏幕滚动的装置,如图7所示,该装置包括:
第一获取模块301,用于获取触摸屏上触点的初始位置;
第二获取模块302,用于当触点的位置在触摸屏上沿着目标方向移动时,获取触点的实时位置;
距离计算模块303,用于根据触点的初始位置和实时位置计算得出触点沿目标方向移动的距离;
第一判断模块304,用于判断触点沿目标方向移动的距离是否大于指定值;
绘制模块305,用于当第一判断模块304判断得出触点沿目标方向移动的距离大于指定值时,根据触点移动的距离绘制当前屏幕画面;
屏幕画面滚动模块306,用于当触点消失时,根据触点沿目标方向移动的距离确定距离当前屏幕最近的一屏屏幕画面,在当前屏幕上绘制最近的一屏屏幕画面。
进一步地,绘制模块305,具体用于,当第一判断模块304判断得出触点沿目标方向移动的距离大于指定值时,获取初始位置的坐标和实时位置的坐标,根据初始位置的坐标和实时位置的坐标的差值的绝对值得到触点沿目标方法移动的像素,根据触点沿目标方法移动的像素确定当前屏幕的坐标,并根据当前屏幕画面的坐标绘制当前屏幕画面。
进一步地,如图8所示,装置还包括:
第二判断模块307,用于在绘制模块305根据触点移动的距离绘制当前屏幕画面之后,判断触点是否消失,当触点未消失时,返回根据触点移动的距离绘制当前屏幕画面的步骤。
进一步地,如图9所示,屏幕画面滚动模块306,具体包括:
第一计算单元306a,用于计算得到触点消失后当前屏幕的滚动速度v;
第二计算单元306b,用于根据滚动速度v计算当前屏幕在默认减速度a1下能够滚动的距离d2;
第三计算单元306c,用于根据当前屏幕的坐标计算到达最近一屏屏幕画面的距离d1;
第一判断单元306d,用于判断距离d2是否小于距离d1;
第四计算单元306e,用于当第一判断单元306d判断得出距离d2小于距离d1时,根据距离d1计算当前屏幕滚动的减速度a2,使滚动速度为0时当前屏幕滚动到最近一屏屏幕画面,完成屏幕滚动;
第五计算单元306f,用于当第一判断单元306d判断得出距离d2不小于距离d1时,根据距离d1计算在默认减速度a1下当前屏幕滚动到最近一屏屏幕画面所需的时间t1;
第六计算单元306g,用于在第五计算单元306f计算得出时间t1后,根据默认减速度a1计算当滚动速度为0时当前屏幕可滚动的距离d3;
第二判断单元306h,用于在第六计算单元306g计算得出距离d3之后,判断距离d3是否大于距离d2;
第一处理单元306i,用于当第二判断单元306h判断得出距离d3大于距离d2时,使当前终端屏幕输出反弹效果,并滚动到最近一屏屏幕画面,完成屏幕滚动;
第二处理单元306j,用于当第二判断单元306h判断得出距离d3不大于距离d2时,将距离d3和触点消失时所处的位置的坐标相加得到当前屏幕的坐标,根据当前屏幕的坐标绘制最近一屏屏幕画面,完成屏幕滚动。
进一步地,第一处理单元306i,具体包括:
第一计算子单元306i1,用于根据最近一屏屏幕画面滚动到当前终端屏幕边界后经过的时间t计算得到时间t2;
第二计算子单元306i2,用于根据时间t2和距离d1计算得到反弹距离X′;
第三计算子单元306i3,用于将反弹距离X’与触点消失时当前屏幕的坐标相加得到当前屏幕的反弹坐标,根据当前终幕的反弹坐标绘制屏幕画面;
重复执行子单元306i4,用于控制循环执行第一计算子单元306i1、第二计算子单元306i2、第三计算子单元306i3,直至反弹时间超过1秒。
进一步地,如图10所示,装置还包括:
左右绘制模块308,用于在屏幕画面滚动模块306在当前屏幕上绘制最近的一屏屏幕画面之后,在缓存中绘制当前屏幕画面的左右两个屏幕画面。
本发明实施例提供的一种屏幕滚动的装置,通过获取触点在触摸屏上的初始位置和触点在沿着目标方向移动时的实时位置,根据触点在触摸屏上沿着目标方向移动的距离绘制当前屏幕画面,当触点消失时时,使得当前屏幕自动滚动到最近一屏的屏幕画面,提供了一种屏幕滚动的方法,使得具有触摸屏的终端屏幕实现了屏幕的滚动,并使用户对具有触摸屏的终端的操纵更加方便。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。