发明内容
本发明的目的是为了解决上述现有技术的不足而提供一种通过双击进行对每一个模式的选中,从而使得盲人在编辑文本时更加快捷,方便,实现真正适合盲人的一款输入法的一种盲人手机输入法的手势判断方法。
为了实现上述目的,本发明所设计的一种盲人手机输入法的手势判断方法,包括两个功能菜单分别是一级菜单和二级菜单,其中一级菜单包括:默认功能菜单、全选文本功能菜单、选择文本功能菜单、语音输入功能菜单和朗读切换板功能菜单;二级菜单包括:复制、粘贴、剪切、取消这几类功能菜单,该方法具体包括以下步骤:
S1、开始:将每一个功能菜单选项均对应有一个独立的整数默认值,将一级菜单和二级菜单分别用不同的布尔值: true或者false表示,然后根据以下步骤判断目前所处的菜单状态以及对应菜单下的对应功能:
a)在输入法运行开始到结束均通过判断这两个值来对应的判断目前输入法的状态;
b)获取对应的整数默认值:然后直接判断对应默认值对应的功能菜单;
S2、获取坐标:将移动终端的触摸屏定义为一个二维的坐标系(x,y),将该触摸屏的左上角作为该坐标系的原点(0,0),其中横向为X轴的正方向,纵向为Y轴的正方向;打开输入法后,***默认处于一级菜单状态下,在虚拟光标移动时分别按照顺序通过应用程序编程接口实时获取以下三种触摸事件的用户坐标: ACTION_DOWN、ACTION_MOVE和ACTION_UP;其中ACTION_DOWN定义为用户触摸按下时的坐标;ACTION_MOVE定义为用户触摸移动时的坐标;ACTION_UP定义为用户抬手离开触摸屏时的坐标;获取虚拟光标从按下、移动、再到用户抬手离开的一个完整处理周期过程中的各个坐标:
S3、先获得用户的ACTION_DOWN坐标,然后判断用户两次按下事件坐标的时间间隔是否在200毫秒以内,是,则判定为双击事件,直接根据当前状态调取双击事件的步骤;否则,进入下一步;
S4、更新用户的ACTION_MOVE坐标,判断用户在X轴方向或者Y轴方向的触摸移动速度是否大于或等于900像素/秒;是,进入下一步;否,不作处理;
S5、记录用户ACTION_UP坐标,然后按顺序判断用户按下的坐标与用户抬手离开的坐标的差值△(x,y)中X的绝对值是否大于屏幕宽度的1/3或者Y的绝对值是否大于屏幕高度的1/5;若这两者间有一个是,直接进入步骤S6;否直接跳出,其中△(x,y)=ACTION_UP坐标-ACTION_DOWN坐标;
S6、判断虚拟光标是上滑或下滑或左滑或右滑的手势结果:当△(x,y)中的X的绝对值大于Y时,则判定为左滑或者右滑,X大于0为右滑,直接调取相应的右滑流程,X小于0时为左滑,直接调取相应的左滑流程,反之,当△(x,y)中Y的绝对值大于X的绝对值时,则判定为上滑或者下滑,Y大于0时为下滑,小于0时为上滑;其中当判断为上滑或下滑时进入下一步骤;
S7、判断是否为一级菜单,是,跳转到S9;否,跳转到S8;
S8、判断是否为二级菜单,是,跳转到S10;否,结束;
S9、进入一级菜单模式内,此时根据上滑或下滑操作切换一级菜单中的功能菜单并通过双击直接进入操作调取相应的功能菜单的功能;
S9、进入二级菜单模式内,此时根据上滑或下滑操作切换一级菜单中的功能菜单并通过双击直接进入操作调取相应的功能菜单的功能,通过左滑和右滑对文本编辑框中光标进行相应的向左和向右操作。
进一步,为了使操作更加快捷,所述双击事件的步骤如下:
S300、判断候选词是否有显示,是,直接将选中的候选词拖动到输入框内;否,跳转到下一个步骤;
S301、判断是否默认当前状态,是,跳转到S302;否,跳转到S304;
S302、判断光标是否处于开头位置,是,跳转到S212;否,跳转到S211;
S304、判断是否选择文本;若是,直接进入文本选择状态,并判断是否有双击操作,是直接切换当前功能菜单模式,然后调取步骤S6,否,保持当前功能菜单模式,若不需要进入选择文本模式下直接跳转到S305;
S305、判断是否全选文本;若是,直接进入文本全选状态,并全部将文本选中,然后判断是否有双击操作,是直接切换当前功能菜单模式,然后调取步骤S6,否,保持当前功能菜单模式,若不需要进入文本全选模式下直接跳转到S306;
S306、判断是否语音输入;是,调取语音输入模块,并通过双击开启语音识别模块,否,跳转到S307;
S307、判断是否复制文本;是,复制选中文本到剪切板,并结束,否,跳转到S308;
S308、判断是否粘贴文本;是,粘贴剪切板中的内容到输入框,并结束否,跳转到S309;
S309、判断是否剪切文本;是,剪切选中的内容到剪切板,并结束;否,跳转到S310;
S310、判断是否取消操作;是,退出全选/文本选择状态,并结束,否,直接结束;
S311、光标跳转到开口,并结束;
S312、光标跳转到结尾,并结束。
进一步,为了说明步骤的具体过程,在步骤S5中用户按下的坐标与用户抬手离开的坐标的差值△(x,y)的具体步骤如下:
S500、获取用户两次触摸屏幕时的坐标,分别用(x1,y1)、(x2,y2)表示,并记录两次按下的时间分别用t1、t2表示,并按步骤S501进行判断;
S501、通过公式计算△t= t2-t1,若△t ≤200毫秒,则定义为双击事件,并直接调取双击的处理步骤; 若△t>200毫秒,说明第一次的坐标(x1,y1)为ACTION_DOWN;第二次的的坐标(x2,y2)为ACTION_MOVE;并跳转到步骤 S502;
S502、判断触摸移动的速度在X轴方向或者Y轴方向的触摸移动速度是否大于900像素/秒;若大于或等于,跳动到步骤S503;若小于,不作任何处理;
S503、记录用户抬手的坐标(x3,y3);
S504、当差值坐标△(x,y)中︱x3- x1︱的绝对值大于屏幕宽度的1/3或者︱y3- y1︱的绝对值大于屏幕高度的1/5时,均调取步骤S6。
进一步,为了使操作更加方便,所述步骤S6的具体步骤如下:
S600、获取手势处理结果差值坐标△(x,y),并判断差值坐标△(x,y)中的x= x3- x1的绝对值是否大于差值坐标△(x,y)中的y= y3- y1的绝对值时,是,跳动到步骤S601,否,跳动到步骤S602;
S601、判断差值坐标△(x,y)中的x= x3- x1是否大于0,是,确定为右滑操作,进入右滑操作步骤;否,确定为左滑操作,进入左滑操作步骤;
S602、判断差值坐标△(x,y)中的y=y3- y1是否大于0,是,确定为下滑操作,进入下滑操作步骤;否,确定为上滑操作,进入上滑操作步骤。
进一步,为了使操作更加方便,所述的左滑和右滑的操作步骤如下:
其中左滑步骤为:
S700、判断候选词是否有显示,是,直接选中上一个候选词;否,跳转到下一个步骤;
S701、判断是否为一级菜单,是,光标向左移动一位;否,跳转到S702;
S702、判断是否为二级菜单,是,跳转到S703;否,结束;
S703、判断是否为全选或选择状态;是,跳动到步骤S704,否,跳转到S707;
S704、判断光标左侧文本是否选中,是,跳动到步骤S705,否,跳转到S706;
S705、取消选中状态左侧一位文本选择状态,同时光标左移一位,并结束;
S706、选中状态左侧一位文本选择状态,同时光标左移一位,并结束;
S707、判断是否语音输入;是,取消语音输入,并结束,否,直接结束;
右滑步骤为:
S800、判断候选词是否有显示,否,直接选中下一个候选词;是,跳转到下一个步骤;
S801、判断是否为一级菜单,是,光标向右移动一位;否,跳转到S802;
S802、判断是否为二级菜单,是,跳转到S803;否,结束;
S803、判断是否为全选或选择状态;是,跳动到步骤S804,否,跳转到S807;
S804、判断光标右侧文本是否选中,是,跳动到步骤S805,否,跳转到S806;
S805、取消选中状态右侧一位文本选择状态,同时光标右移一位,并结束;
S806、选中状态右侧一位文本选择状态,同时光标右移一位,并结束;
S807、判断是否语音输入;是,重新进行语音输入,并结束,否,直接结束。
进一步,提高操作精度,用户在判断各个功能菜单时通过各个功能菜单对应的整数默认值进行判断,且用户在每个功能菜单的切换与双击确认的间隔必须在规定的时间范围内,超过时间为双击确认重置整数默认值,且各个模式的切换后均会通过语音播报进行功能的语言提示。
本发明得到的一种盲人手机输入法的手势判断方法,通过获取用户按下、移动、再到用户抬手离开的坐标并计算坐标差值来判断左滑、右滑、上滑、下滑的操作,并通过双击进行菜单功能切换,进入对应功能菜单后,通过左滑、右滑、上滑、下滑+双击实现调取对应功能的操作步骤,最终使得盲人在编辑文本时更加快捷,方便,实现真正适合盲人的一款输入法。
实施例:
如图1-图6所示,本实施例提供的一种盲人手机输入法的手势判断方法,包括两个功能菜单分别是一级菜单和二级菜单,其中一级菜单包括:默认功能菜单、全选文本功能菜单、选择文本功能菜单、语音输入功能菜单和朗读切换板功能菜单;二级菜单包括:复制、粘贴、剪切、取消这几类功能菜单,该方法具体包括以下步骤:
S1、开始:将每一个功能菜单选项均对应有一个独立的整数默认值,将一级菜单和二级菜单分别用不同的布尔值: true或者false表示,然后根据以下步骤判断目前所处的菜单状态以及对应菜单下的对应功能:
a)在输入法运行开始到结束均通过判断这两个值来对应的判断目前输入法的状态;
b)获取对应的整数默认值:然后直接判断对应默认值对应的功能菜单;
S2、获取坐标:将移动终端的触摸屏定义为一个二维的坐标系(x,y),将该触摸屏的左上角作为该坐标系的原点(0,0),其中横向为X轴的正方向,纵向为Y轴的正方向;打开输入法后,***默认处于一级菜单状态下,在虚拟光标移动时分别按照顺序通过应用程序编程接口实时获取以下三种触摸事件的用户坐标: ACTION_DOWN、ACTION_MOVE和ACTION_UP;其中ACTION_DOWN定义为用户触摸按下时的坐标;ACTION_MOVE定义为用户触摸移动时的坐标;ACTION_UP定义为用户抬手离开触摸屏时的坐标;获取虚拟光标从按下、移动、再到用户抬手离开的一个完整处理周期过程中的各个坐标:
S3、先获得用户的ACTION_DOWN坐标,然后判断用户两次按下事件坐标的时间间隔是否在200毫秒以内,是,则判定为双击事件,直接根据当前状态调取双击事件的步骤;否则,进入下一步;
S4、更新用户的ACTION_MOVE坐标,判断用户在X轴方向或者Y轴方向的触摸移动速度是否大于或等于900像素/秒;是,进入下一步;否,不作处理;
S5、记录用户ACTION_UP坐标,然后按顺序判断用户按下的坐标与用户抬手离开的坐标的差值△(x,y)中X的绝对值是否大于屏幕宽度的1/3或者Y的绝对值是否大于屏幕高度的1/5;若这两者间有一个是,直接进入步骤S6;否直接跳出,其中△(x,y)=ACTION_UP坐标-ACTION_DOWN坐标;
S6、判断虚拟光标是上滑或下滑或左滑或右滑的手势结果:当△(x,y)中的X的绝对值大于Y时,则判定为左滑或者右滑,X大于0为右滑,直接调取相应的右滑流程,X小于0时为左滑,直接调取相应的左滑流程,反之,当△(x,y)中Y的绝对值大于X的绝对值时,则判定为上滑或者下滑,Y大于0时为下滑,小于0时为上滑;其中当判断为上滑或下滑时进入下一步骤;
S7、判断是否为一级菜单,是,跳转到S9;否,跳转到S8;
S8、判断是否为二级菜单,是,跳转到S10;否,结束;
S9、进入一级菜单模式内,此时根据上滑或下滑操作切换一级菜单中的功能菜单并通过双击直接进入操作调取相应的功能菜单的功能;
S9、进入二级菜单模式内,此时根据上滑或下滑操作切换一级菜单中的功能菜单并通过双击直接进入操作调取相应的功能菜单的功能,通过左滑和右滑对文本编辑框中光标进行相应的向左和向右操作。
进一步,为了使操作更加快捷,所述双击事件的步骤如下:
S300、判断候选词是否有显示,是,直接将选中的候选词拖动到输入框内;否,跳转到下一个步骤;
S301、判断是否默认当前状态,是,跳转到S302;否,跳转到S304;
S302、判断光标是否处于开头位置,是,跳转到S212;否,跳转到S211;
S304、判断是否选择文本;若是,直接进入文本选择状态,并判断是否有双击操作,是直接切换当前功能菜单模式,然后调取步骤S6,否,保持当前功能菜单模式,若不需要进入选择文本模式下直接跳转到S305;
S305、判断是否全选文本;若是,直接进入文本全选状态,并全部将文本选中,然后判断是否有双击操作,是直接切换当前功能菜单模式,然后调取步骤S6,否,保持当前功能菜单模式,若不需要进入文本全选模式下直接跳转到S306;
S306、判断是否语音输入;是,调取语音输入模块,并通过双击开启语音识别模块,否,跳转到S307;
S307、判断是否复制文本;是,复制选中文本到剪切板,并结束,否,跳转到S308;
S308、判断是否粘贴文本;是,粘贴剪切板中的内容到输入框,并结束否,跳转到S309;
S309、判断是否剪切文本;是,剪切选中的内容到剪切板,并结束;否,跳转到S310;
S310、判断是否取消操作;是,退出全选/文本选择状态,并结束,否,直接结束;
S311、光标跳转到开口,并结束;
S312、光标跳转到结尾,并结束。
进一步,为了说明步骤的具体过程,在步骤S5中用户按下的坐标与用户抬手离开的坐标的差值△(x,y)的具体步骤如下:
S500、获取用户两次触摸屏幕时的坐标,分别用(x1,y1)、(x2,y2)表示,并记录两次按下的时间分别用t1、t2表示,并按步骤S501进行判断;
S501、通过公式计算△t= t2-t1,若△t ≤200毫秒,则定义为双击事件,并直接调取双击的处理步骤; 若△t>200毫秒,说明第一次的坐标(x1,y1)为ACTION_DOWN;第二次的的坐标(x2,y2)为ACTION_MOVE;并跳转到步骤 S502;
S502、判断触摸移动的速度在X轴方向或者Y轴方向的触摸移动速度是否大于900像素/秒;若大于或等于,跳动到步骤S503;若小于,不作任何处理;
S503、记录用户抬手的坐标(x3,y3);
S504、当差值坐标△(x,y)中︱x3- x1︱的绝对值大于屏幕宽度的1/3或者︱y3- y1︱的绝对值大于屏幕高度的1/5时,均调取步骤S6。
进一步,为了使操作更加方便,所述步骤S6的具体步骤如下:
S600、获取手势处理结果差值坐标△(x,y),并判断差值坐标△(x,y)中的x= x3- x1的绝对值是否大于差值坐标△(x,y)中的y= y3- y1的绝对值时,是,跳动到步骤S601,否,跳动到步骤S602;
S601、判断差值坐标△(x,y)中的x= x3- x1是否大于0,是,确定为右滑操作,进入右滑操作步骤;否,确定为左滑操作,进入左滑操作步骤;
S602、判断差值坐标△(x,y)中的y=y3- y1是否大于0,是,确定为下滑操作,进入下滑操作步骤;否,确定为上滑操作,进入上滑操作步骤。
进一步,为了使操作更加方便,所述的左滑和右滑的操作步骤如下:
其中左滑步骤为:
S700、判断候选词是否有显示,是,直接选中上一个候选词;否,跳转到下一个步骤;
S701、判断是否为一级菜单,是,光标向左移动一位;否,跳转到S702;
S702、判断是否为二级菜单,是,跳转到S703;否,结束;
S703、判断是否为全选或选择状态;是,跳动到步骤S704,否,跳转到S707;
S704、判断光标左侧文本是否选中,是,跳动到步骤S705,否,跳转到S706;
S705、取消选中状态左侧一位文本选择状态,同时光标左移一位,并结束;
S706、选中状态左侧一位文本选择状态,同时光标左移一位,并结束;
S707、判断是否语音输入;是,取消语音输入,并结束,否,直接结束;
右滑步骤为:
S800、判断候选词是否有显示,否,直接选中下一个候选词;是,跳转到下一个步骤;
S801、判断是否为一级菜单,是,光标向右移动一位;否,跳转到S802;
S802、判断是否为二级菜单,是,跳转到S803;否,结束;
S803、判断是否为全选或选择状态;是,跳动到步骤S804,否,跳转到S807;
S804、判断光标右侧文本是否选中,是,跳动到步骤S805,否,跳转到S806;
S805、取消选中状态右侧一位文本选择状态,同时光标右移一位,并结束;
S806、选中状态右侧一位文本选择状态,同时光标右移一位,并结束;
S807、判断是否语音输入;是,重新进行语音输入,并结束,否,直接结束。
在本是实施例中各个模式的切换后均会通过语音播报进行功能的语言提示,以供使用者操作。
在本实施例中一级菜单模式的各个功能切换说明如下:
一级菜单选项与说明:
默认功能菜单:在输入法初始状态下,打开本输入法就默认为一级菜单模式,此时直接通过双击后光标跳到文本的开头或者结尾;
全选文本功能菜单:在一级菜单下通过上滑或下滑进行切换一级菜单的各个模式;切换完成后通过双击进入对应的模式;同时当双击后选中文本编辑框中的所有文字,通过双击进入二级菜单模式;
选择文本功能菜单:在一级菜单下通过上滑或下滑进行切换一级菜单的各个模式;切换完成后通过双击进入对应的模式;同时双击后进入文本选择状态,并锁定然后通过双击同时进入二级菜单;
语音输入功能菜单:在一级菜单下通过上滑或下滑进行切换一级菜单的各个模式;切换完成后通过双击进入对应的模式;同时通过双击后开始语音输入识别;
朗读剪切板功能菜单:一级菜单下通过上滑或下滑进行切换一级菜单的各个模式;切换完成后通过双击进入对应的模式;同时通过双击后朗读剪切板中的内容;
一级菜单下的手势说明:
上滑功能菜单:切换一级菜单一个选项
下滑:切换一级菜单另一个选项
左滑:文本编辑框中光标向左移动
右滑:文本编辑框中光标向右移动
双击:激活选择的菜单选项
二级菜单选项与说明(二级菜单必须保证在全选文本和选择文本状态下双击才能进入二级菜单):
复制功能菜单:复制选中的文字
粘贴功能菜单:粘贴剪切板中的内容
剪切功能菜单:剪切选中的文字
取消功能菜单:取消操作
手势说明:
上滑:切换二级菜单一个选项
下滑:切换二级菜单另一个选项
左滑:
全选文本状态:逐字选中或者取消文本
选择文本状态:逐字选中或者取消文本
语音输入状态:取消语音输入
右滑:
全选文本状态:逐字选中或者取消文本
选择文本状态:逐字选中或者取消文本
语音输入状态:重新进行语音输入
双击:激活选择的菜单选项
工作过程说明:当输入法打开以后,默认的状态为一级菜单的默认值,也就是说,打开输入法后不做任何操作,直接双击的效果就是跳到行头或者行尾;然后输入法在使用过程中,从输入法开始运行到结束,应用程序会有两个标识来判断具体的菜单选项。两个标识分别是:
1.判断是否为二级菜单的布尔值:布尔值表示了两种状态,true或者false。当这个布尔值标识为true时,则说明当前位于二级菜单,false时则说明位于一级菜单,而***默认值为false;
2.确定选中的菜单位置的整数:不管是一级或者二级菜单,这个数都是通用的,用于记录具体选中的菜单选项的位置,这个位置标识是唯一的,所以程序会根据这个标识获取相对应的菜单选项,默认值为-1。
在本实施例中通过对各个功能菜单进行如下整数进行标识:
默认:标识 -1;
全选文本:标识 2;
选择文本:标识 3;
语音输入:标识1;
朗读剪切板:标识 8;
粘贴:标识 4;
复制:标识 5;
剪切:标识 6;
取消:标识 7。
此时,用户双击,进入一级菜单,然后根据双击流程步骤操作,当用户全选文本后,双击进入二级菜单,此时每上滑一次进行二级菜单的模式切换一次,例如:用户需要复制文本,此时上滑进行切换,然后进入复制功能后,双击锁定直接调取复制文本功能。同时需要说明的是用户必须在切换菜单选项的5秒内完成具体的操作,否则程序将会重置标识。例如,用户通过上下滑动的手势将菜单选项切换到了全选文本菜单,但在5秒钟之内并没有双击确认,那么在5秒钟之后程序将会自动重置标识。另外,重新打开输入法也会重置标识。
在本实施例中通过上述方法使得在编辑文本时,盲人可用手势在屏幕上上滑或下滑进行快捷菜单的操作。如需要全选编辑框内的所有内容,可用单指上滑或下滑到全选文本并在屏幕空白处双击激活进入二级菜单。操作完成后,可以直接在用同样的手势滑到复制、剪贴或取消再次双击确认然后直接进行相应的功能操作。另外如需要选择编辑框内的部分文本时,可先用单指左右滑动的手势把光标移动到要选择的开始点,在用上滑或下滑的手势滑到选择文本并双击激活,在用单指左右滑动的手势逐字选择或撤销选择的文本。在选择文本模式下,如先向左滑选择了一段文本,在向右滑则为逐字撤销已选择的文本,先向右滑选择了一段文本,反之则逐字撤销已选择的文本。选择了一段文本后,可继续通过单指上下滑动的手势滑到复制、剪贴或取消,双击激活。同时定义快首快尾功能,在编辑框内有文本的情况下,盲人可直接通过双击屏幕空白处把光标快速移动到行首或行尾。语音输入功能,盲人可以直接通过单指上下滑动到语音输入菜单,双击开始录音,录音中可以随时再次双击结束录音并返回文本信息到编辑框,如想继续录音可重复上述步骤。录音中,左滑撤销当前录音,又滑重新录音。
因此,本实施例中提供的一种输入法切换通过获取用户按下、移动、再到用户抬手离开的坐标并计算坐标差值来判断左滑、右滑、上滑、下滑的操作,并通过双击进行菜单功能切换,进入对应功能菜单后,通过左滑、右滑、上滑、下滑+双击实现调取对应功能的操作步骤,最终使得盲人在编辑文本时更加快捷,方便,实现真正适合盲人的一款输入法。