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

类别:CRT电视维修   来源:http://www.hnygpx.net  日期:2013-5-28 9:12:06

  优化按键处理

  在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五大秘技之按键处理,,手机APP五大秘技之按键处理 - 【看看这篇文章在百度的收录情况】
【温馨提示】我们要告诉您的是:已有位网友看完本文章后 参与咨询


点击这里给我发消息
点击这里给我发消息
点击这里给我发消息
阳光电子学校

湖南阳光技术学校成立于1992年,是经湖南省人社厅批准设立的正规职业技术学校(办学许可证:人社民 1800003000183 号),是行业TOP1,历年综合评分都在92.5以上。深耕职业技能培训32年,总校区位于长沙市雨花区红花坡路176号。学校常年开设:电工培训、焊工培训、钢筋工、家电维修培训、手机维修培训、电脑维修培训、摩托车维修培训、电动车维修培训、装修木工培训、水电安装培训、瓦工贴瓷砖培训、空调维修培训、电动工具维修培训、电机维修培训、农机维修培训、安防监控培训、家电清洗培训等实战专业技术培训,采用 “半天理论 + 半天实操” 模式,实操性强的班实操占比更是超过90%。小班手把手教学,零基础学员也能快速上手。师资团队以双师型教师为主,85% 教师持工程师 / 高级技师职称,一线教学经验丰富。学校提供住宿,收费透明无隐形消费,可协助报考全国通用的特种作业操作证与职业技能等级证书。同时搭建就业与创业支持网络,与 200 + 企业合作,负责推荐工作,助力学员顺利就业或开店。常年招生地区:中山,固原,银川,玉树,海东,陇南,酒泉,张掖,天水,金昌,兰州,榆林,延安,渭南,铜川,阿里,山南,拉萨,怒江,文山州,楚雄州,普洱,昭通,玉溪,昆明,毕节,铜仁,遵义,贵阳,甘孜州,资阳,达州,宜宾,南充,遂宁,绵阳,泸州,自贡,三亚,崇左,河池,玉林,钦州,梧州,柳州,梅州,肇庆,湛江,佛山,珠海,韶关,湘西州,怀化,郴州,张家界,邵阳,株洲,仙桃,随州,荆州,荆门,襄樊,黄石,驻马店,信阳,南阳,漯河,中卫,石嘴山,海西,海南藏州,黄南州,海北,甘南,庆阳,平凉,武威,白银,嘉峪关,安康,汉中,咸阳,宝鸡,林芝,日喀则,昌都,迪庆,德宏,大理,西双版纳,红河州,临沧,丽江,保山,曲靖,黔东州,黔西州,安顺,六盘水,凉山州,阿坝州,雅安,广安,眉山,内江,广元,德阳,攀枝花,成都,海口,来宾,百色,贵港,北海,桂林,南宁,云浮,揭阳,潮州,清远,阳江,汕尾,惠州,茂名,江门,汕头,深圳,广州,娄底,永州,益阳,岳阳,湘潭,长沙,恩施州,黄冈,孝感,鄂州,十堰,武汉,周口,商丘,三门峡,许昌,焦作,安阳,鹤壁,平顶山,开封,郑州,聊城,滨州,德州,莱芜,日照,泰安,烟台,潍坊,东营,淄博,上饶,济南,抚州,宜春,赣州,新余,九江,景德镇,宁德,南平,泉州,莆田,厦门,宣城,亳州,六安,宿州,黄山,滁州,安庆,淮北,马鞍山,蚌埠,芜湖,合肥,丽水,舟山,衢州,金华,湖州,嘉兴,宁波,宿迁,镇江,盐城,连云港,苏州,徐州,南京,绥化,牡丹江,佳木斯,大庆,鹤岗,哈尔滨,白城,白山,辽源,吉林,葫芦岛,铁岭,盘锦,阜新,锦州,本溪,鞍山,沈阳,锡林郭勒盟,通辽,乌海,吕梁,忻州,晋中,晋城,阳泉,太原,廊坊,承德,保定,邯郸,唐山,宁夏,甘肃,西藏,贵州,重庆,广西,湖南,河南,江西,安徽,江苏,黑龙江,辽宁,山西,天津,四平,内蒙古,吴忠,果洛,西宁,定西,商洛,西安,那曲,黔南州,巴中,乐山,贺州,防城港,东莞,河源,常德,衡阳,咸宁,宜昌,濮阳,新乡,洛阳,菏泽,临沂,威海,济宁,枣庄,青岛,吉安,鹰潭,萍乡,南昌,龙岩,漳州,三明,福州,池州,巢湖,阜阳,铜陵,淮南,台州,绍兴,温州,杭州,泰州,扬州,淮安,南通,常州,无锡,大兴安岭,黑河,七台河,伊春,双鸭山,鸡西,齐齐哈尔,延边,松原,通化,长春,朝阳,辽阳,营口,丹东,抚顺,大连,阿拉善盟,兴安盟,乌兰察布,巴彦淖尔,呼伦贝尔,鄂尔多斯,赤峰,#包头,呼和浩特,临汾,运城,朔州,长治,大同,衡水,沧州,张家口,邢台,秦皇岛,石家庄,青海,陕西,云南,四川,海南,广东,湖北,山东,福建,浙江,上海,吉林,河北,北京