一种解决android焦点移动后丢失的方法及系统
技术领域
本发明涉及智能电视技术领域,具体地说是一种解决android焦点移动后丢失的方法及系统。
背景技术
在机顶盒与智能电视中,为了满足用户日益增长的界面需求,各种各样的安卓系统的桌面启动器被设计出来。一般的,界面的海报都是从服务器上获取,管理员可以在头端配置显示的海报及显示位置等。然而在实际使用中发现在焦点移动过程中,如果焦点移动至本页最后一排,再去找下一个焦点时,由于没有进行绘制,找不到下一个焦点的位置,导致焦点丢失的现象。
基于此,本发明提供一种解决android焦点移动后丢失的方法及系统。
发明内容
本发明的技术任务是针对以上不足之处,提供一种有效提升用户体验的解决android焦点移动后丢失的方法及系统。
一种解决android焦点移动后丢失的方法,其实现过程为:
步骤一、首先给出移动指令:向上移动或向下移动;
步骤二、自动获取当前焦点所在位置,并判断给出的移动指令为向上移动还是向下移动;
步骤三、获取下一焦点位置;
步骤四、根据下一焦点位置,计算需要移动的距离,当移动指令为向下移动时,将下一个焦点距离屏幕顶点的距离与1/4屏幕的高度作比较,小于1/4屏幕的高度时下一焦点下移,大于1/4屏幕的高度时下一焦点上移;当移动指令为向上移动时,将下一个焦点距离屏幕底部的距离与3/4屏幕的高度作比较,小于3/4屏幕的高度时下一焦点下移,大于3/4屏幕的高度时下一焦点上移,通过该步骤,保证下一个焦点的位置不为空。
所述步骤二中当前焦点位置通过getCurrentFocus()方法,在当前的activity中获取焦点。
所述步骤三中下一焦点位置的获取过程为:根据当前获取焦点的控件,通过FocusFinder.getInstance().findNextFocus()方法获取到下一个焦点位置,如果返回是空,则表示到了最底端或者最顶端,无法继续下移或者上移,如果不为空,就找到下一个获取焦点的view。
所述步骤四中,当移动指令为向下移动时,如果下一焦点距离屏幕顶点的距离大于1/4屏幕的高度,则把焦点固定在屏幕1/4处,即焦点距离屏幕顶点距离减去1/4屏幕高度就是屏幕需要向上滑动的距离。
所述步骤四中,当移动指令为向上移动时,如果下一焦点位置的底部距离小于3/4屏幕的高度,则屏幕需往下滑动3/4屏幕的高度减去下一焦点位置的底部距离。
一种解决android焦点移动后丢失的系统,包括:
位置获取模块,用于获取焦点所在位置;
指令判断模块,用于判断移动指令,该移动指令包括向上移动、向下移动;
位置移动模块,用于根据指令判断模块给出的判断结果,对位置获取模块获取的焦点进行移动,在移动指令为向下移动时,该位置移动模块将下一个焦点距离屏幕顶点的距离与1/4屏幕的高度作比较,小于1/4屏幕的高度时下一焦点下移,大于1/4屏幕的高度时下一焦点上移;当移动指令为向上移动时,该位置移动模块将下一个焦点距离屏幕底部的距离与3/4屏幕的高度作比较,小于3/4屏幕的高度时下一焦点下移,大于3/4屏幕的高度时下一焦点上移。
所述位置获取模块中配置有当前焦点位置获取单元来获取当前焦点的位置,该当前焦点位置获取单元通过getCurrentFocus()方法,在当前的activity中获取焦点。
所述位置获取模块中配置有下一焦点位置获取单元获取下一焦点位置,该下一焦点位置获取单元根据当前获取焦点的控件,通过FocusFinder.getInstance().findNextFocus()方法获取到下一个焦点位置,如果返回是空,则表示到了最底端或者最顶端,无法继续下移或者上移,如果不为空,就找到下一个焦点位置。
在位置移动模块中,当移动指令为向下移动时,如果下一焦点距离屏幕顶点的距离大于1/4屏幕的高度,则把焦点固定在屏幕1/4处,即焦点距离屏幕顶点距离减去1/4屏幕高度就是屏幕需要向上滑动的距离。
在位置移动模块中,当移动指令为向上移动时,如果下一焦点位置的底部距离小于3/4屏幕的高度,则屏幕需往下滑动3/4屏幕的高度减去下一焦点位置的底部距离。
本发明的一种解决android焦点移动后丢失的方法及系统和现有技术相比,具有以下有益效果:
本发明的一种解决android焦点移动后丢失的方法及系统,在屏幕显示页面的焦点移动时,固定焦点在屏幕1/4处,让屏幕进行上下滚动,焦点不会移动至最下方,保证最下方图片有时间进行绘制,同时,保证指向下一个焦点的位置不为空,进而给用户显示更好的内容,提升用户体验,方便用户操作,实用性强,适用范围广泛,具有很好的推广应用价值。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
附图1为本发明方法的实现流程图。
附图2为本发明系统的实现示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明的方案,下面结合具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如附图1所示,一种解决android焦点移动后丢失的方法,本发明的任务是焦点移动时,固定焦点在屏幕1/4处,让屏幕进行上下滚动。焦点不会移动至最下方,保证最下方图片有时间进行绘制,同时,保证指向下一个焦点的位置不为空。
其实现过程为:
步骤一、首先给出移动指令:向上移动或向下移动;
步骤二、自动获取当前焦点所在位置,并判断给出的移动指令为向上移动还是向下移动;
步骤三、获取下一焦点位置;
步骤四、根据下一焦点位置,计算需要移动的距离,当移动指令为向下移动时,将下一个焦点距离屏幕顶点的距离与1/4屏幕的高度作比较,小于1/4屏幕的高度时下一焦点下移,大于1/4屏幕的高度时下一焦点上移;当移动指令为向上移动时,将下一个焦点距离屏幕底部的距离与3/4屏幕的高度作比较,小于3/4屏幕的高度时下一焦点下移,大于3/4屏幕的高度时下一焦点上移,通过该步骤,保证下一个焦点的位置不为空。
所述步骤二中当前焦点位置通过getCurrentFocus()方法,在当前的activity中获取焦点。
所述步骤三中下一焦点位置的获取过程为:根据当前获取焦点的控件,通过FocusFinder.getInstance().findNextFocus()方法获取到下一个焦点位置,如果返回是空,则表示到了最底端或者最顶端,无法继续下移或者上移,如果不为空,就找到下一个获取焦点的view。
所述步骤四中,当移动指令为向下移动时,如果下一焦点距离屏幕顶点的距离大于1/4屏幕的高度,则把焦点固定在屏幕1/4处,即焦点距离屏幕顶点距离减去1/4屏幕高度就是屏幕需要向上滑动的距离。
所述步骤四中,当移动指令为向上移动时,如果下一焦点位置的底部距离小于3/4屏幕的高度,则屏幕需往下滑动3/4屏幕的高度减去下一焦点位置的底部距离。
下面以遥控器控制界面为例,对本发明的方法进行详细描述。
步骤S101:获取当前获取焦点的view。
先通过getCurrentFocus()方法在当前的activity中找到获取焦点的view。
步骤S102:判断遥控器是按向上键还是向下键。
根据响应到的遥控器按键判断是需要上移还是下移,从而获取下一个焦点的位置。
步骤S103:获取下一焦点的位置。
根据当前获取焦点的控件,通过FocusFinder.getInstance().findNextFocus()获取到下一个获取焦点的view,如果返回是空,则证明到了最底端或者最顶端,无法继续下移或者上移,如果不为空,就找到下一个获取焦点的view。
步骤S104:计算需要移动的距离。
以遥控器按下向下键为例,其具体方法为:获取到下一个焦点的位置,与1/4屏幕的高度作比较,如果下一焦点距离屏幕顶点的距离小于1/4屏幕的高度,焦点往下移动;如果下一焦点距离屏幕顶点的距离大于1/4屏幕的高度,则需要把焦点固定在屏幕1/4处,即焦点距离屏幕顶点距离减去1/4屏幕高度就是屏幕需要向上滑动的距离。同理,遥控器按下向上键的逻辑相同,只不过需要判断的是下一焦点位置的底部距离屏幕底部的距离,再与3/4屏幕的高度进行比较,如果下一焦点位置的底部距离小于3/4屏幕的高度,则屏幕需往下滑动3/4屏幕的高度减去下一焦点位置的底部距离。
如附图2所示,一种解决android焦点移动后丢失的系统,包括:
位置获取模块,用于获取焦点所在位置;
指令判断模块,用于判断移动指令,该移动指令包括向上移动、向下移动;
位置移动模块,用于根据指令判断模块给出的判断结果,对位置获取模块获取的焦点进行移动,在移动指令为向下移动时,该位置移动模块将下一个焦点距离屏幕顶点的距离与1/4屏幕的高度作比较,小于1/4屏幕的高度时下一焦点下移,大于1/4屏幕的高度时下一焦点上移;当移动指令为向上移动时,该位置移动模块将下一个焦点距离屏幕底部的距离与3/4屏幕的高度作比较,小于3/4屏幕的高度时下一焦点下移,大于3/4屏幕的高度时下一焦点上移。
所述位置获取模块中配置有当前焦点位置获取单元来获取当前焦点的位置,该当前焦点位置获取单元通过getCurrentFocus()方法,在当前的activity中获取焦点。
所述位置获取模块中配置有下一焦点位置获取单元获取下一焦点位置,该下一焦点位置获取单元根据当前获取焦点的控件,通过FocusFinder.getInstance().findNextFocus()方法获取到下一个焦点位置,如果返回是空,则表示到了最底端或者最顶端,无法继续下移或者上移,如果不为空,就找到下一个焦点位置。
在位置移动模块中,当移动指令为向下移动时,如果下一焦点距离屏幕顶点的距离大于1/4屏幕的高度,则把焦点固定在屏幕1/4处,即焦点距离屏幕顶点距离减去1/4屏幕高度就是屏幕需要向上滑动的距离。
在位置移动模块中,当移动指令为向上移动时,如果下一焦点位置的底部距离小于3/4屏幕的高度,则屏幕需往下滑动3/4屏幕的高度减去下一焦点位置的底部距离。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。