微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Android平台消息响应机制的研究及其触摸屏响应的优化实现

Android平台消息响应机制的研究及其触摸屏响应的优化实现

时间:02-05 来源:3721RD 点击:

3 Android 平台触摸响应的优化

值得注意的是,上面触摸响应MotionEvent.ACTION_DOWN 中,特意定义了一个临时触摸计数变量keyCount,当计数变量加到一定的程度时候才执行触摸响应。这样处理能有效地防止连续触摸响应,触摸不释放而直接跳到下一个状态,触摸变量的设置在各个界面跳转过程中尤其是游戏菜单中各界面跳转中是很有必要的。

触摸响应中除了各个菜单界面的响应以外还有一个重要的响应就是游戏中对主角的操控。主游戏界面的触摸响应原理和菜单界面是一致的,不同的是触摸判断范围的选取有差异,菜单界面各个触摸范围是固定的,而游戏界面触摸区域的划定是动态的。由于在角色扮演等游戏中主角是核心人物,因此对主角的操控的触摸响应显得尤其重要,进行触摸设计的时候一般以主角为中心进行设计,以主角的坐标作为基本点来判断。

图3 主角控制时区域的划分

图 3 所示的是主角移动时候的区域划分,以水平和垂直坐标轴的交点作为主角的坐标中心点,将主角周边的区域划分为10 个区域,触点在区域9-10 的时候方向向右,对称的区域5-6 的时候方向向左,区域7-8 的时候方向向下。对于区域1-4 进行进一步的划分,2-3 区域方向向上,只响应向上的操作,区域1 同时响应右键和上键,区域4 同时响应左键和上键。这样对区域进行细化符合实际情况,区域1 和区域4 的角度范围可以根据实际情况微调。

  
以主角为中心划分主角周边的区域以后,斜上方区域响应斜上方的键控,即响应上键的时候同时响应左键或者右键;右边区域响应右键;上下区域分别响应上和下键,响应按键后执行对应的触摸按键操作,这样按照区间划分区域具有很好的用户体验。这的注意的是,主角操控的触摸键控一定得对应触摸按键的释放,要不然系统接收用户的触摸响应后对应的逻辑会一直执行下去。当event.getAction()状态为MotionEvent.ACTION_UP 时执行触摸按键的释放,触摸按键释放的操作如下:

if ((player.keyStatus & SonicPlayer.KEY_LEFT) == SonicPlayer.KEY_LEFT)
{player.keyUp(SonicPlayer.KEY_LEFT);}//释放具体的触摸响应
触摸屏接口设计模块的改进在于根据主角的中心点细化区域,然后根据划分的区域执行相应的操作,同时在触摸的响应时增加了计数变量。

  4 结论

Android
平台的触摸响应是非常重要的,本身的触摸事件处理机制比较复杂,但是触摸响应实现时非常简单,只需实现相关方法即可。应用的触屏响应主要分为菜单界面的触摸响应和游戏界面的触摸响应,这两部分的实现机制是相同的,只不过划定触摸范围的方法不同。

在菜单各个界面中主要依靠菜单中各个图片相对屏幕的像素位置来确定触摸范围,然后实现触屏响应;在游戏界面主要以主角为中心,根据上述的区域范围划分来确定触摸范围和相应的操作。在实现触摸方法的过程中,触摸临时计数变量的设置非常必要,起到缓冲的作用,防止一次触摸键控不释放引发多个界面的响应。本论文主要对Android 平台的触摸响应进行了实现和优化,大大增强了用户体验,具有很强的应用价值。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top