您当前的位置:五五电子网电子知识维修资料维修技术手机APP五大秘技之按键处理 正文
手机APP五大秘技之按键处理

手机APP五大秘技之按键处理

点击数:7215 次   录入时间:03-04 12:02:40   整理:http://www.55dianzi.com   维修技术

  优化按键处理

  在Android中进行按键处理,要用到以下这些命令:

  ★onKeyDownfintkeyCode,KeyEventevent)按键按下的命令onKeyUp(intkeyCode,KeyEventevent)按键释放的命令onKeyLongPress(intkeyCode,KeyEventevent)连续按键的命令合理分配按键手机按键跟PC键盘不同,按键数量少,所以合理分配按键就显得尤为关键了,一键操作就是一个不错的解决方法,只用一键就可以处理一个命令,完成一个操作,例如一键启动游戏、一键关闭游戏等。

  但是手机键盘有限,一键操作的范围也有限,所以我们还需要用到组合键,例如“数字1+#”组合键可以快速关闭当前运行的程序,“数字2+#”组合键可以实现游戏中的某些复杂操作等。

  避免代码重复由于Android手机都支持触摸屏操作,所以在编写代码时需要兼顾触摸屏和按键的处理,这就要把事件逻辑处理的代码写在单独的命令内部,分别在触摸屏和按键事件中调用,这样就可以避免代码的重复。

  小提示TIPS虽然大部分触摸屏响应和按键响应是一样的,例如按钮单击的响应,但有部分操作不一样,例如列表的上下拖动和选择,这些都需要在进行按键处理时单独考虑,不要直接复制触摸屏代码。

  APP按键处理代码本示例的目的是用按键控制九宫格,当用户左右移动方向键时,实现单元格的移动,并实现模拟连续按键的逻辑。

  第一步:在Eclipse中选择“File→New→AndroidProject”

  打开新建项目窗口,然后设置applICationname为KeyDemo、PACkagename为comjavamestudio.Android.key、CreateActivity为KeyDemoActivity。最后,点击“File→New-Class”新建一个名为KeyDemoView的类。

  第二步:在KeyDemoView类中覆盖onDraw,并添加九宫格绘制代码,关键代码如下所示(完整代码下载地址:http://www.icpcw.

  com/bzSOFt):

  //绘制九宫格for(inti=O;i<4ii++){//水平线CANvas.drawLine(startX,startY+i*cellHeight,startX+3*cellWidth,startY+i*cellHeight,paint);//垂直线canvas.drawLine(startX+i*cellWidth,startY,startX+I*cellWidth,startY+3*cellHeight,paint);第三步:在KeyDemoView类中的onKeyDown内部编写按键处理代码,主要作用是存储被按下的按键,而具体的逻辑处理则放在线程的run内部,代码如下所示:

  switch(keyCode){caseKeyEventKEYCODE_CPAD_UP:

  keyStates=keyStatesI(1<<UP)://记忆按键操作break;caseKeyEvent.

  KEYCODE_DPAD_DOWKI:

  keyStates=keyStates|(1<<DOWlkl);break;caseKeyEvent.

  KEYCODE_DPAD_LEFT:

  keyStates=keyStates|(1<<LEFT):

  break;caseKeyEvent.

  KEYCODE_DPAD_RIGHT:

  keyStates=keyStates|(1<<RIGHT);break;caseKeyEvent.

  KEYCODE_DPAD_CENTER:

  keyStates=keyStates|(1<<F{RE):

  break;}

  最后选择Eclipse中的KeyDemo,单击鼠标右键,选择“RunAs→AndroidApplication”

即可(见图)。

  疑问解答读者提问:Android手机的触摸屏操作,能不能同时作用于两个程序,一个程序在前台显示,一个程序在后台运行。不知道我的这个要求可以实现不,如果能应该怎么做?

  陈跃峰:你的这个要求实现不了,因为Android系统只能发送指令给当前显示的程序,后台运行的程序是收不到请求的,除非修改Android系统的内核,但是这样一来就麻烦了,一是难度非常高,二是工作量非常大,三是实用价值不大。

  如果不是同时作用于两个程序,而是有先后顺序,实现难度也就低多了,你可以考虑一下。

 


本文关键字:手机  维修技术维修资料 - 维修技术

《手机APP五大秘技之按键处理》相关文章>>>