Android移動應(yīng)用觸摸屏的實現(xiàn)和優(yōu)化方案
圖3 主角控制時區(qū)域的劃分
圖 3 所示的是主角移動時候的區(qū)域劃分,以水平和垂直坐標(biāo)軸的交點作為主角的坐標(biāo)中心點,將主角周邊的區(qū)域劃分為10 個區(qū)域,觸點在區(qū)域9-10 的時候方向向右,對稱的區(qū)域5-6 的時候方向向左,區(qū)域7-8 的時候方向向下。對于區(qū)域1-4 進行進一步的劃分,2-3 區(qū)域方向向上,只響應(yīng)向上的操作,區(qū)域1 同時響應(yīng)右鍵和上鍵,區(qū)域4 同時響應(yīng)左鍵和上鍵。這樣對區(qū)域進行細化符合實際情況,區(qū)域1 和區(qū)域4 的角度范圍可以根據(jù)實際情況微調(diào)。
以主角為中心劃分主角周邊的區(qū)域以后,斜上方區(qū)域響應(yīng)斜上方的鍵控,即響應(yīng)上鍵的時候同時響應(yīng)左鍵或者右鍵;右邊區(qū)域響應(yīng)右鍵;上下區(qū)域分別響應(yīng)上和下鍵,響應(yīng)按鍵后執(zhí)行對應(yīng)的觸摸按鍵操作,這樣按照區(qū)間劃分區(qū)域具有很好的用戶體驗。這的注意的是,主角操控的觸摸鍵控一定得對應(yīng)觸摸按鍵的釋放,要不然系統(tǒng)接收用戶的觸摸響應(yīng)后對應(yīng)的邏輯會一直執(zhí)行下去。當(dāng)event.getAction()狀態(tài)為MotionEvent.ACTION_UP 時執(zhí)行觸摸按鍵的釋放,觸摸按鍵釋放的操作如下:
if ((player.keyStatus SonicPlayer.KEY_LEFT) == SonicPlayer.KEY_LEFT)
{player.keyUp(SonicPlayer.KEY_LEFT);}//釋放具體的觸摸響應(yīng)
觸摸屏接口設(shè)計模塊的改進在于根據(jù)主角的中心點細化區(qū)域,然后根據(jù)劃分的區(qū)域執(zhí)行相應(yīng)的操作,同時在觸摸的響應(yīng)時增加了計數(shù)變量。
4 結(jié)論
Android 平臺的觸摸響應(yīng)是非常重要的,本身的觸摸事件處理機制比較復(fù)雜,但是觸摸響應(yīng)實現(xiàn)時非常簡單,只需實現(xiàn)相關(guān)方法即可。應(yīng)用的觸屏響應(yīng)主要分為菜單界面的觸摸響應(yīng)和游戲界面的觸摸響應(yīng),這兩部分的實現(xiàn)機制是相同的,只不過劃定觸摸范圍的方法不同。
在菜單各個界面中主要依靠菜單中各個圖片相對屏幕的像素位置來確定觸摸范圍,然后實現(xiàn)觸屏響應(yīng);在游戲界面主要以主角為中心,根據(jù)上述的區(qū)域范圍劃分來確定觸摸范圍和相應(yīng)的操作。在實現(xiàn)觸摸方法的過程中,觸摸臨時計數(shù)變量的設(shè)置非常必要,起到緩沖的作用,防止一次觸摸鍵控不釋放引發(fā)多個界面的響應(yīng)。本論文主要對Android 平臺的觸摸響應(yīng)進行了實現(xiàn)和優(yōu)化,大大增強了用戶體驗,具有很強的應(yīng)用價值。
評論