《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > Android移動應用觸摸屏的實現和優化方案
Android移動應用觸摸屏的實現和優化方案
摘要: Android平臺上的應用越來越多,人們對應用的要求越來越高。現階段觸屏手機是趨勢,觸摸是人們與應用交互的主流方式,人們對觸摸的靈敏度,簡易性和方便度要求越來越高,有必要優化應用的觸摸效果。
關鍵詞: Android 觸摸屏
Abstract:
Key words :

近些年來,隨著3G 網絡的大規模建設和智能手機的迅速普及,移動互聯網時代已經到來。作為Google 推出的一款操作系統,Android 自問世以來就吸引了人們廣泛的關注,受到眾多廠商和開發者的青睞。Android 是一個開放、完整、免費的手機平臺,強大的開源特性吸引了越來越多的開發者,Android的版本如今已由最初的1.1 升級到最新的4.0,功能越來越強大,用戶體驗越來越好,在Android 平臺上發布的應用產品更加豐富多彩。

Android 平臺上的應用越來越多,人們對應用的要求越來越高。現階段觸屏手機是趨勢,觸摸是人們與應用交互的主流方式,人們對觸摸的靈敏度,簡易性和方便度要求越來越高,有必要優化應用的觸摸效果。
 
1 Android 平臺的觸摸機制

一般而言,事件是用戶與UI(圖形界面)進行交互的時候所觸發的操作。例如在手機屏幕上觸摸特定的區域就會觸發對應的事件,在Android 中這些事件將被傳送到事件處理器,它是一個專門接受事件對象并對其進行翻譯和處理的方法。
 
在 Android 中用戶事件響應是很重要的,用戶消息主要來源于3 種硬件外部設備:觸摸響應(ONTouch系列方法)、按鍵響應(onKey系列方法)和軌跡球(Trackball)。不論我們是通過觸摸方式與屏幕交 互,還是使用軌跡球來交互,任何與屏幕相關的交互都是與屏幕相應位置上的視圖控件的交互。現在 Android 系統的手機幾乎全是觸屏,基本的按鍵越來越少,觸摸屏響應成為發展的大趨勢,所以在應用設計的時候主要考慮觸摸的效果問題,著重優化用戶觸摸響應。
 
Android移動應用觸摸屏的實現和優化方案
圖1 Android 平臺用戶消息處理流程
 
圖 1 詳細說明了各種用戶操作被系統捕獲的過程。系統捕獲用戶的響應后,由Linux 驅動捕獲用戶的消息,經過Android 框架層的AcTIvity Manager 的作用傳遞給Activity中的系統方法,通過執行相應的系統方法更新View 類,消息傳遞至Application Framework 層,最后調用Linux 驅動,控制著界面的繪制和更新。在Android 工程中,觸摸相關的接口函數主要封裝在android.view.KeyEvent 類中,寫觸摸屏操控的時候首先導入該類的包,在Activity的子類中對該方法進行說明即可。Android 的事件處理機制相對簡單,對于事件處理機制不必詳細理解,實現各種響應時只需具體實現各個方法即可,各個方法的具體實現在View類中進行,下面著重說明 Android 平臺觸摸響應的實現。
 
2 Android 平臺觸摸響應的實現

一般而言在 Android 中,對于觸摸事件的處理如同UI 事件一樣,主要通過兩種方法來處理,一種是利用View 類的onTouchEvent()方法,一種是實現OnTouchLiSTener 接口的onTouch()方法。系統中當這兩種方法都存在的前提下,系統將會優先采用OnTouchListener接口回調方法進行處理。一般在簡單的 UI 設計界面重寫onTouchListener()方法,涉及到多個Activity 切換時在方法中實現Activity 信息保存與跳轉即可。
 
對于大型應用而言,界面狀態比較復雜,觸摸響應需要詳細處理,系統提供了一個專門用于處理用戶觸摸事件的接口函數onTouchEvent()。實際開發過程中只需先聲明此接口函數,然后在主View類中重寫該函數實現具體的觸摸效果即可。下面是接口函數的聲明:
 

 
觸屏監聽方法中只有一個MotionEvent event 參數,此類的實例中保存了玩家觸屏的各種動作,常見的有:按下動作、移動動作、多點觸屏、屏幕壓力等,在此類中定義了很多動作的靜態常量值,通過 event.getAction()方法獲取玩家的動作與所需動作常量值進行匹配。
 
上面是聲音界面的觸摸響應處理:event.getAction()是鍵控的類型,是MotionEvent 類的系統方法,獲取當前的觸摸響應。當向下觸摸屏幕時,就響應MotionEvent.ACTION_DOWN這個動作,當觸點滿足給定的區間范圍,就執行相當的操作,實現游戲的狀態跳轉。觸摸范圍在劃分的時候最好以屏幕的相對位置為參考點,這樣在應用橫豎屏的處理或者應用移植的時候會更方便,避免了頻繁 修改參考坐標的值。在程序入口處繼承Activity 的子類中可以獲取當前設備屏幕寬和高的具體屬性,這樣觸摸范圍確定時以屏幕的寬和高的屬性值來定位就可以了。整個觸摸部分的流程圖如下:
 
Android移動應用觸摸屏的實現和優化方案
圖2 觸摸屏操作響應的具體流程
 
圖 2 顯示的是游戲過程中觸摸屏幕時具體的響應流程,主要涉及到Activity 類和View類。在Activity 類中進行觸摸方法onTouchEvent()的聲明,在View 類中對該方法進行詳細定義和說明。當觸摸響應后,觸發事件響應機制,event 對象通過getAction()方法獲取觸摸響應,獲得當前的觸摸點坐標event.getX()和event.getY(),與方法中的觸摸范圍進行判斷,若在區域內則執行觸摸響應。觸摸響應執行后需要在觸摸釋放MotionEvent.ACTION_DOWN進行觸摸釋放的處理,及時釋放當前的觸摸響應。
 
3 Android 平臺觸摸響應的優化

值得注意的是,上面觸摸響應MotionEvent.ACTION_DOWN 中,特意定義了一個臨時觸摸計數變量keyCount,當計數變量加到一定的程度時候才執行觸摸響應。這樣處理能有效地防止連續觸摸響應,觸摸不釋放而直 接跳到下一個狀態,觸摸變量的設置在各個界面跳轉過程中尤其是游戲菜單中各界面跳轉中是很有必要的。
 
觸摸響應中除了各個菜單界面的響應以外還有一個重要的響應就是游戲中對主角的操控。主游戲界面的觸摸響應原理和菜單界面是一致的,不同的是觸摸判斷 范圍的選取有差異,菜單界面各個觸摸范圍是固定的,而游戲界面觸摸區域的劃定是動態的。由于在角色扮演等游戲中主角是核心人物,因此對主角的操控的觸摸響應顯得尤其重要,進行觸摸設計的時候一般以主角為中心進行設計,以主角的坐標作為基本點來判斷。
Android移動應用觸摸屏的實現和優化方案
圖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 平臺的觸摸響應進行了實現和優化,大大增強了用戶體驗,具有很強的應用價值。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲男人的天堂在线观看| 久久综合九色欧美综合狠狠| 欧美在线影院| 亚洲素人一区二区| 亚洲免费成人av电影| 亚洲黄色免费电影| 亚洲福利国产| 在线观看一区| 在线免费日韩片| 在线国产精品一区| 亚洲电影第1页| 在线不卡中文字幕| 亚洲国产精品99久久久久久久久| 激情久久中文字幕| 影音先锋欧美精品| 樱桃国产成人精品视频| 亚洲高清不卡av| 91久久精品日日躁夜夜躁欧美| 亚洲电影免费| 亚洲国产精品一区制服丝袜 | 亚洲高清资源综合久久精品| 欧美一区二区三区在线观看| 欧美专区福利在线| 亚洲国产欧美不卡在线观看| 亚洲人成网站影音先锋播放| 亚洲精品一区二区三区蜜桃久 | 亚洲精品视频在线| 一本色道久久88亚洲综合88| 亚洲一区三区在线观看| 亚洲欧美一区二区三区久久 | 欧美日韩视频在线| 国产精品久久久一区麻豆最新章节 | 亚洲美女视频网| 亚洲一区二区三区涩| 欧美在线观看你懂的| 亚洲精品国产精品乱码不99 | 国产精品久久久一区二区| 国产精品腿扒开做爽爽爽挤奶网站| 国产人妖伪娘一区91| 韩国一区电影| 91久久精品国产91久久性色| 一区二区欧美亚洲| 欧美在线地址| 99国产麻豆精品| 午夜视频一区二区| 毛片基地黄久久久久久天堂| 欧美日韩视频在线| 国产色综合久久| 亚洲国产高清自拍| 亚洲伊人网站| 亚洲国产视频一区| 亚洲综合三区| 免费高清在线一区| 国产精品美女久久久免费 | 激情av一区| 日韩一级不卡| 香蕉免费一区二区三区在线观看| 亚洲日本免费| 欧美一区二区三区在线视频 | 国产日韩欧美高清免费| 亚洲精品1234| 午夜免费电影一区在线观看| 亚洲九九精品| 欧美综合二区| 欧美日韩国产在线播放| 国产一二精品视频| 99国产精品久久| 亚洲国产专区| 午夜欧美不卡精品aaaaa| 免费在线观看日韩欧美| 国产精品欧美日韩一区二区| 在线日韩精品视频| 亚洲欧美美女| 亚洲午夜免费福利视频| 卡通动漫国产精品| 国产精品久久久久久久免费软件| 怡红院精品视频在线观看极品| 亚洲午夜国产成人av电影男同| 亚洲高清在线观看一区| 欧美一级视频| 欧美日韩在线播放三区| 亚洲国产精品一区二区久| 欧美一二三区精品| 亚洲一区三区视频在线观看| 免费日韩成人| 国产日韩精品入口| 一区二区三区四区精品| 亚洲精品欧洲| 久久免费高清| 国产精品一区一区三区| 一本久道久久综合婷婷鲸鱼| 亚洲精品国产精品国产自| 久久久国产精彩视频美女艺术照福利| 欧美视频在线免费看| 亚洲国内高清视频| 亚洲福利在线看| 久久精品日产第一区二区| 国产精品s色| 亚洲精品日本| 亚洲青色在线| 免费永久网站黄欧美| 国模 一区 二区 三区| 亚洲欧美www| 亚洲欧美日韩国产精品| 欧美日韩亚洲激情| 亚洲精选视频免费看| 亚洲精品视频一区| 欧美不卡视频一区| 一区在线电影| 亚洲国产一区二区视频 | 欧美激情bt| 91久久夜色精品国产网站| 亚洲激情小视频| 鲁鲁狠狠狠7777一区二区| 国产视频久久久久久久| 午夜视频在线观看一区二区| 欧美一二三视频| 国产伦精品免费视频| 亚洲免费在线精品一区| 亚洲亚洲精品在线观看 | 亚洲欧洲精品一区二区| 亚洲精品中文字幕有码专区| 欧美成人一二三| 最新国产成人在线观看| 亚洲免费观看在线观看| 欧美高清一区二区| 亚洲激情黄色| 一本到12不卡视频在线dvd| 欧美日韩免费看| av成人激情| 午夜精品99久久免费| 国产精品亚洲аv天堂网| 亚洲欧美中文日韩在线| 欧美在线观看视频一区二区| 国产亚洲一级| 亚洲黄色成人| 欧美日韩国产精品一卡| 亚洲免费大片| 先锋亚洲精品| 国内精品久久久久久影视8| 亚洲黄色小视频| 欧美人交a欧美精品| 一道本一区二区| 午夜精品久久久久久99热软件| 国产欧美日韩精品一区| 亚洲成色精品| 欧美日本韩国一区| 亚洲天堂偷拍| 久久久蜜桃精品| 91久久精品国产91久久| 亚洲一区二区三区视频| 国产模特精品视频久久久久| 久久国产综合精品| 欧美国产日韩一区二区在线观看| 一本久久青青| 久久亚洲影院| 日韩午夜高潮| 久久riav二区三区| 亚洲经典一区| 午夜欧美精品| 在线播放不卡| 亚洲视频欧美在线| 国产亚洲二区| 日韩一级欧洲| 国产女精品视频网站免费| 亚洲欧洲在线观看| 国产精品大片wwwwww| 亚洲高清不卡在线| 欧美视频在线一区| 亚洲成色精品| 国产精品v一区二区三区 | 91久久综合| 国产精品久久一区主播| 亚洲电影一级黄| 国产精品jizz在线观看美国| 久久精品国产77777蜜臀| 欧美日韩人人澡狠狠躁视频| 欧美亚洲尤物久久| 欧美日本成人| 欧美在线综合| 欧美午夜大胆人体| 亚洲国产天堂网精品网站| 国产精品户外野外| 91久久精品一区| 国产欧美精品日韩| 一区二区日韩欧美| 一区二区亚洲| 久久国产精品高清| 一区二区三区黄色| 欧美~级网站不卡| 性娇小13――14欧美| 欧美日韩精品伦理作品在线免费观看| 欧美一区2区视频在线观看| 欧美人在线视频| 亚洲国产精品传媒在线观看| 国产精品黄色| 一本色道久久综合亚洲精品不卡 | 91久久久久久| 国产午夜精品一区二区三区视频 | 国产精品日韩精品欧美在线|