




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第第頁Android移動應(yīng)用觸摸屏的實現(xiàn)和優(yōu)化方案近些年來,隨著3G網(wǎng)絡(luò)的大規(guī)模建設(shè)和智能手機的迅速普及,移動互聯(lián)網(wǎng)時代已經(jīng)到來。作為Google推出的一款操作系統(tǒng),Android自問世以來就吸引了人們廣泛的關(guān)注,受到眾多廠商和開發(fā)者的青睞。Android是一個開放、完整、免費的手機平臺,強大的開源特性吸引了越來越多的開發(fā)者,Android的版本如今已由最初的1.1升級到最新的4.0,功能越來越強大,用戶體驗越來越好,在Android平臺上發(fā)布的應(yīng)用產(chǎn)品更加豐富多彩。Android平臺上的應(yīng)用越來越多,人們對應(yīng)用的要求越來越高。現(xiàn)階段觸屏手機是趨勢,觸摸是人們與應(yīng)用交互的主流方式,人們對觸摸的靈敏度,簡易性和方便度要求越來越高,有必要優(yōu)化應(yīng)用的觸摸效果。1Android平臺的觸摸機制一般而言,事件是用戶與UI(圖形界面)進行交互的時候所觸發(fā)的操作。例如在手機屏幕上觸摸特定的區(qū)域就會觸發(fā)對應(yīng)的事件,在Android中這些事件將被傳送到事件處理器,它是一個專門接受事件對象并對其進行翻譯和處理的方法。在Android中用戶事件響應(yīng)是很重要的,用戶消息主要來源于3種硬件外部設(shè)備:觸摸響應(yīng)(ONTouch系列方法)、按鍵響應(yīng)(onKey系列方法)和軌跡球(Trackball)。不論我們是通過觸摸方式與屏幕交互,還是使用軌跡球來交互,任何與屏幕相關(guān)的交互都是與屏幕相應(yīng)位置上的視圖控件的交互?,F(xiàn)在Android系統(tǒng)的手機幾乎全是觸屏,基本的按鍵越來越少,觸摸屏響應(yīng)成為發(fā)展的大趨勢,所以在應(yīng)用設(shè)計的時候主要考慮觸摸的效果問題,著重優(yōu)化用戶觸摸響應(yīng)。圖1Android平臺用戶消息處理流程圖1詳細說明了各種用戶操作被系統(tǒng)捕獲的過程。系統(tǒng)捕獲用戶的響應(yīng)后,由Linux驅(qū)動捕獲用戶的消息,經(jīng)過Android框架層的AcTIvityManager的作用傳遞給Activity中的系統(tǒng)方法,通過執(zhí)行相應(yīng)的系統(tǒng)方法更新View類,消息傳遞至ApplicationFramework層,最后調(diào)用Linux驅(qū)動,控制著界面的繪制和更新。在Android工程中,觸摸相關(guān)的接口函數(shù)主要封裝在android.view.KeyEvent類中,寫觸摸屏操控的時候首先導(dǎo)入該類的包,在Activity的子類中對該方法進行說明即可。Android的事件處理機制相對簡單,對于事件處理機制不必詳細理解,實現(xiàn)各種響應(yīng)時只需具體實現(xiàn)各個方法即可,各個方法的具體實現(xiàn)在View類中進行,下面著重說明Android平臺觸摸響應(yīng)的實現(xiàn)。2Android平臺觸摸響應(yīng)的實現(xiàn)一般而言在Android中,對于觸摸事件的處理如同UI事件一樣,主要通過兩種方法來處理,一種是利用View類的onTouchEvent()方法,一種是實現(xiàn)OnTouchLiSTener接口的onTouch()方法。系統(tǒng)中當這兩種方法都存在的前提下,系統(tǒng)將會優(yōu)先采用OnTouchListener接口回調(diào)方法進行處理。一般在簡單的UI設(shè)計界面重寫onTouchListener()方法,涉及到多個Activity切換時在方法中實現(xiàn)Activity信息保存與跳轉(zhuǎn)即可。對于大型應(yīng)用而言,界面狀態(tài)比較復(fù)雜,觸摸響應(yīng)需要詳細處理,系統(tǒng)提供了一個專門用于處理用戶觸摸事件的接口函數(shù)onTouchEvent()。實際開發(fā)過程中只需先聲明此接口函數(shù),然后在主View類中重寫該函數(shù)實現(xiàn)具體的觸摸效果即可。下面是接口函數(shù)的聲明:觸屏監(jiān)聽方法中只有一個MotionEventevent參數(shù),此類的實例中保存了玩家觸屏的各種動作,常見的有:按下動作、移動動作、多點觸屏、屏幕壓力等,在此類中定義了很多動作的靜態(tài)常量值,通過event.getAction()方法獲取玩家的動作與所需動作常量值進行匹配。上面是聲音界面的觸摸響應(yīng)處理:event.getAction()是鍵控的類型,是MotionEvent類的系統(tǒng)方法,獲取當前的觸摸響應(yīng)。當向下觸摸屏幕時,就響應(yīng)MotionEvent.ACTION_DOWN這個動作,當觸點滿足給定的區(qū)間范圍,就執(zhí)行相當?shù)牟僮鳎瑢崿F(xiàn)游戲的狀態(tài)跳轉(zhuǎn)。觸摸范圍在劃分的時候最好以屏幕的相對位置為參考點,這樣在應(yīng)用橫豎屏的處理或者應(yīng)用移植的時候會更方便,避免了頻繁修改參考坐標的值。在程序入口處繼承Activity的子類中可以獲取當前設(shè)備屏幕寬和高的具體屬性,這樣觸摸范圍確定時以屏幕的寬和高的屬性值來定位就可以了。整個觸摸部分的流程圖如下:圖2觸摸屏操作響應(yīng)的具體流程圖2顯示的是游戲過程中觸摸屏幕時具體的響應(yīng)流程,主要涉及到Activity類和View類。在Activity類中進行觸摸方法onTouchEvent()的聲明,在View類中對該方法進行詳細定義和說明。當觸摸響應(yīng)后,觸發(fā)事件響應(yīng)機制,event對象通過getAction()方法獲取觸摸響應(yīng),獲得當前的觸摸點坐標event.getX()和event.getY(),與方法中的觸摸范圍進行判斷,若在區(qū)域內(nèi)則執(zhí)行觸摸響應(yīng)。觸摸響應(yīng)執(zhí)行后需要在觸摸釋放MotionEvent.ACTION_DOWN進行觸摸釋放的處理,及時釋放當前的觸摸響應(yīng)。3Android平臺觸摸響應(yīng)的優(yōu)化值得注意的是,上面觸摸響應(yīng)MotionEvent.ACTION_DOWN中,特意定義了一個臨時觸摸計數(shù)變量keyCount,當計數(shù)變量加到一定的程度時候才執(zhí)行觸摸響應(yīng)。這樣處理能有效地防止連續(xù)觸摸響應(yīng),觸摸不釋放而直接跳到下一個狀態(tài),觸摸變量的設(shè)置在各個界面跳轉(zhuǎn)過程中尤其是游戲菜單中各界面跳轉(zhuǎn)中是很有必要的。觸摸響應(yīng)中除了各個菜單界面的響應(yīng)以外還有一個重要的響應(yīng)就是游戲中對主角的操控。主游戲界面的觸摸響應(yīng)原理和菜單界面是一致的,不同的是觸摸判斷范圍的選取有差異,菜單界面各個觸摸范圍是固定的,而游戲界面觸摸區(qū)域的劃定是動態(tài)的。由于在角色扮演等游戲中主角是核心人物,因此對主角的操控的觸摸響應(yīng)顯得尤其重要,進行觸摸設(shè)計的時候一般以主角為中心進行設(shè)計,以主角的坐標作為基本點來判斷。圖3主角控制時區(qū)域的劃分圖3所示的是主角移動時候的區(qū)域劃分,以水平和垂直坐標軸的交點作為主角的坐標中心點,將主角周邊的區(qū)域劃分為10個區(qū)域,觸點在區(qū)域910的時候方向向右,對稱的區(qū)域56的時候方向向左,區(qū)域78的時候方向向下。對于區(qū)域14進行進一步的劃分,23區(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í)行下去。當event.getAction()狀態(tài)為MotionEvent.ACTION_UP時執(zhí)行觸摸按鍵的釋放,觸摸按鍵釋放的操作如下:if((player.keyStatusSonicPlayer.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)機制是相同的,只不過劃定觸摸范圍的方法不同。在菜單各個界面中主要依靠菜
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年證券登記、結(jié)算機構(gòu)服務(wù)項目規(guī)劃申請報告模板
- 2025年壓力容器檢驗員資格考試試卷:壓力容器檢驗員考試輔導(dǎo)教材試題
- 班級里的英雄事跡記人記事作文(8篇)
- 2025年北京市公安機關(guān)公務(wù)員錄用考試面試技巧試題
- 專業(yè)資格證書證明書專業(yè)資格證書名稱(6篇)
- 2025年電子商務(wù)師(職業(yè)資格精英)考試試卷
- 成長路上的一堂課議論文14篇
- 成長的足跡演講比賽演講稿類作文(13篇)
- 2025年初中化學九年級上冊期中測試卷化學實驗原理分析
- 2025年貴金屬首飾與寶玉石檢測員(高級)考試試卷實戰(zhàn)案例分析與解答
- 北京海淀區(qū)一零一中學2025年八年級英語第二學期期末復(fù)習檢測模擬試題含答案
- 章程規(guī)范業(yè)務(wù)管理制度
- 2025年福建省中考語文試卷真題(含標準答案)
- 保溫材料安全管理制度
- 餐飲廢棄物管理制度
- 2025年甘肅高考物理試卷真題及答案詳解(精校打印版)
- 護士禮儀與職業(yè)素養(yǎng)課件
- 玉溪市2025年事業(yè)單位公開招聘工作人員筆試歷年典型考題及考點剖析附帶答案詳解
- 2025至2030中國工業(yè)電機行業(yè)市場發(fā)展現(xiàn)狀及商業(yè)模式與投資發(fā)展報告
- 部編人教版小學語文1-6年級詞語表
- 2025屆山東省青島市超銀中學英語八下期末綜合測試試題含答案
評論
0/150
提交評論