新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > Android平臺消息響應機制的研究及其觸摸屏響應的優(yōu)化實現(xiàn)

Android平臺消息響應機制的研究及其觸摸屏響應的優(yōu)化實現(xiàn)

作者: 時間:2012-05-07 來源:網絡 收藏


上面是聲音界面的處理:event.getAction()是鍵控的類型,是MotionEvent 類的系統(tǒng)方法,獲取當前的。當向下觸摸屏幕時,就響應MotionEvent.ACTION_DOWN這個動作,當觸點滿足給定的區(qū)間范圍,就執(zhí)行相當?shù)牟僮?,實現(xiàn)游戲的狀態(tài)跳轉。觸摸范圍在劃分的時候最好以屏幕的相對位置為參考點,這樣在應用橫豎屏的處理或者應用移植的時候會更方便,避免了頻繁修改參考坐標的值。在程序入口處繼承Activity 的子類中可以獲取當前設備屏幕寬和高的具體屬性,這樣觸摸范圍確定時以屏幕的寬和高的屬性值來定位就可以了。整個觸摸部分的流程圖如下:

圖2 觸摸屏操作響應的具體流程

圖 2 顯示的是游戲過程中觸摸屏幕時具體的響應流程,主要涉及到Activity 類和View類。在Activity 類中進行觸摸方法onTouchEvent()的聲明,在View 類中對該方法進行詳細定義和說明。當后,觸發(fā)事件響應機制,event 對象通過getAction()方法獲取觸摸響應,獲得當前的觸摸點坐標event.getX()和event.getY(),與方法中的觸摸范圍進行判斷,若在區(qū)域內則執(zhí)行觸摸響應。觸摸響應執(zhí)行后需要在觸摸釋放MotionEvent.ACTION_DOWN進行觸摸釋放的處理,及時釋放當前的觸摸響應。

3 觸摸響應的優(yōu)化

值得注意的是,上面觸摸響應MotionEvent.ACTION_DOWN 中,特意定義了一個臨時觸摸計數(shù)變量keyCount,當計數(shù)變量加到一定的程度時候才執(zhí)行觸摸響應。這樣處理能有效地防止連續(xù)觸摸響應,觸摸不釋放而直接跳到下一個狀態(tài),觸摸變量的設置在各個界面跳轉過程中尤其是游戲菜單中各界面跳轉中是很有必要的。

觸摸響應中除了各個菜單界面的響應以外還有一個重要的響應就是游戲中對主角的操控。主游戲界面的觸摸響應原理和菜單界面是一致的,不同的是觸摸判斷范圍的選取有差異,菜單界面各個觸摸范圍是固定的,而游戲界面觸摸區(qū)域的劃定是動態(tài)的。由于在角色扮演等游戲中主角是核心人物,因此對主角的操控的觸摸響應顯得尤其重要,進行觸摸設計的時候一般以主角為中心進行設計,以主角的坐標作為基本點來判斷。

圖3 主角控制時區(qū)域的劃分

圖 3 所示的是主角移動時候的區(qū)域劃分,以水平和垂直坐標軸的交點作為主角的坐標中心點,將主角周邊的區(qū)域劃分為10 個區(qū)域,觸點在區(qū)域9-10 的時候方向向右,對稱的區(qū)域5-6 的時候方向向左,區(qū)域7-8 的時候方向向下。對于區(qū)域1-4 進行進一步的劃分,2-3 區(qū)域方向向上,只響應向上的操作,區(qū)域1 同時響應右鍵和上鍵,區(qū)域4 同時響應左鍵和上鍵。這樣對區(qū)域進行細化符合實際情況,區(qū)域1 和區(qū)域4 的角度范圍可以根據實際情況微調。



評論


相關推薦

技術專區(qū)

關閉