設為主頁(yè)  加入收藏
 
·I2S數字功放IC/內置DSP音頻算法功放芯片  ·馬達驅動(dòng)IC  ·2.1聲道單芯片D類(lèi)功放IC  ·內置DC/DC升壓模塊的D類(lèi)功放IC  ·鋰電充電管理IC/快充IC  ·無(wú)線(xiàn)遙控方案  ·直流無(wú)刷電機驅動(dòng)芯片
當前位置:首頁(yè)->方案設計
Android移動(dòng)應用觸摸屏的實(shí)現和優(yōu)化方案
文章來(lái)源: 更新時(shí)間:2013/1/28 10:50:00
在線(xiàn)咨詢(xún):
給我發(fā)消息
張代明 3003290139
給我發(fā)消息
小鄢 2850985542
給我發(fā)消息
李湘寧 2850985550
13713728695
 

近些年來(lái),隨著(zhù)3G 網(wǎng)絡(luò )的大規模建設和智能手機的迅速普及,移動(dòng)互聯(lián)網(wǎng)時(shí)代已經(jīng)到來(lái)。作為Google 推出的一款操作系統,Android 自問(wèn)世以來(lái)就吸引了人們廣泛的關(guān)注,受到眾多廠(chǎng)商和開(kāi)發(fā)者的青睞。Android 是一個(gè)開(kāi)放、完整、免費的手機平臺,強大的開(kāi)源特性吸引了越來(lái)越多的開(kāi)發(fā)者,Android的版本如今已由最初的1.1 升級到最新的4.0,功能越來(lái)越強大,用戶(hù)體驗越來(lái)越好,在A(yíng)ndroid 平臺上發(fā)布的應用產(chǎn)品更加豐富多彩。
Android 平臺上的應用越來(lái)越多,人們對應用的要求越來(lái)越高,F階段觸屏手機是趨勢,觸摸是人們與應用交互的主流方式,人們對觸摸的靈敏度,簡(jiǎn)易性和方便度要求越來(lái)越高,有必要優(yōu)化應用的觸摸效果。
 
1 Android 平臺的觸摸機制
一般而言,事件是用戶(hù)與UI(圖形界面)進(jìn)行交互的時(shí)候所觸發(fā)的操作。例如在手機屏幕上觸摸特定的區域就會(huì )觸發(fā)對應的事件,在A(yíng)ndroid 中這些事件將被傳送到事件處理器,它是一個(gè)專(zhuān)門(mén)接受事件對象并對其進(jìn)行翻譯和處理的方法。
在 Android 中用戶(hù)事件響應是很重要的,用戶(hù)消息主要來(lái)源于3 種硬件外部設備:觸摸響應(ONTouch系列方法)、按鍵響應(onKey系列方法)和軌跡球(Trackball)。不論我們是通過(guò)觸摸方式與屏幕交 互,還是使用軌跡球來(lái)交互,任何與屏幕相關(guān)的交互都是與屏幕相應位置上的視圖控件的交互,F在 Android 系統的手機幾乎全是觸屏,基本的按鍵越來(lái)越少,觸摸屏響應成為發(fā)展的大趨勢,所以在應用設計的時(shí)候主要考慮觸摸的效果問(wèn)題,著(zhù)重優(yōu)化用戶(hù)觸摸響應。
Android移動(dòng)應用觸摸屏的實(shí)現和優(yōu)化方案
圖1 Android 平臺用戶(hù)消息處理流程
圖 1 詳細說(shuō)明了各種用戶(hù)操作被系統捕獲的過(guò)程。系統捕獲用戶(hù)的響應后,由Linux 驅動(dòng)捕獲用戶(hù)的消息,經(jīng)過(guò)Android 框架層的AcTIvity Manager 的作用傳遞給Activity中的系統方法,通過(guò)執行相應的系統方法更新View 類(lèi),消息傳遞至Application Framework 層,最后調用Linux 驅動(dòng),控制著(zhù)界面的繪制和更新。在A(yíng)ndroid 工程中,觸摸相關(guān)的接口函數主要封裝在android.view.KeyEvent 類(lèi)中,寫(xiě)觸摸屏操控的時(shí)候首先導入該類(lèi)的包,在A(yíng)ctivity的子類(lèi)中對該方法進(jìn)行說(shuō)明即可。Android 的事件處理機制相對簡(jiǎn)單,對于事件處理機制不必詳細理解,實(shí)現各種響應時(shí)只需具體實(shí)現各個(gè)方法即可,各個(gè)方法的具體實(shí)現在View類(lèi)中進(jìn)行,下面著(zhù)重說(shuō)明 Android 平臺觸摸響應的實(shí)現。
 
2 Android 平臺觸摸響應的實(shí)現
一般而言在 Android 中,對于觸摸事件的處理如同UI 事件一樣,主要通過(guò)兩種方法來(lái)處理,一種是利用View 類(lèi)的onTouchEvent()方法,一種是實(shí)現OnTouchLiSTener 接口的onTouch()方法。系統中當這兩種方法都存在的前提下,系統將會(huì )優(yōu)先采用OnTouchListener接口回調方法進(jìn)行處理。一般在簡(jiǎn)單的 UI 設計界面重寫(xiě)onTouchListener()方法,涉及到多個(gè)Activity 切換時(shí)在方法中實(shí)現Activity 信息保存與跳轉即可。
對于大型應用而言,界面狀態(tài)比較復雜,觸摸響應需要詳細處理,系統提供了一個(gè)專(zhuān)門(mén)用于處理用戶(hù)觸摸事件的接口函數onTouchEvent()。實(shí)際開(kāi)發(fā)過(guò)程中只需先聲明此接口函數,然后在主View類(lèi)中重寫(xiě)該函數實(shí)現具體的觸摸效果即可。下面是接口函數的聲明:

觸屏監聽(tīng)方法中只有一個(gè)MotionEvent event 參數,此類(lèi)的實(shí)例中保存了玩家觸屏的各種動(dòng)作,常見(jiàn)的有:按下動(dòng)作、移動(dòng)動(dòng)作、多點(diǎn)觸屏、屏幕壓力等,在此類(lèi)中定義了很多動(dòng)作的靜態(tài)常量值,通過(guò) event.getAction()方法獲取玩家的動(dòng)作與所需動(dòng)作常量值進(jìn)行匹配。
上面是聲音界面的觸摸響應處理:event.getAction()是鍵控的類(lèi)型,是MotionEvent 類(lèi)的系統方法,獲取當前的觸摸響應。當向下觸摸屏幕時(shí),就響應MotionEvent.ACTION_DOWN這個(gè)動(dòng)作,當觸點(diǎn)滿(mǎn)足給定的區間范圍,就執行相當的操作,實(shí)現游戲的狀態(tài)跳轉。觸摸范圍在劃分的時(shí)候最好以屏幕的相對位置為參考點(diǎn),這樣在應用橫豎屏的處理或者應用移植的時(shí)候會(huì )更方便,避免了頻繁 修改參考坐標的值。在程序入口處繼承Activity 的子類(lèi)中可以獲取當前設備屏幕寬和高的具體屬性,這樣觸摸范圍確定時(shí)以屏幕的寬和高的屬性值來(lái)定位就可以了。整個(gè)觸摸部分的流程圖如下:
Android移動(dòng)應用觸摸屏的實(shí)現和優(yōu)化方案
圖2 觸摸屏操作響應的具體流程
圖 2 顯示的是游戲過(guò)程中觸摸屏幕時(shí)具體的響應流程,主要涉及到Activity 類(lèi)和View類(lèi)。在A(yíng)ctivity 類(lèi)中進(jìn)行觸摸方法onTouchEvent()的聲明,在View 類(lèi)中對該方法進(jìn)行詳細定義和說(shuō)明。當觸摸響應后,觸發(fā)事件響應機制,event 對象通過(guò)getAction()方法獲取觸摸響應,獲得當前的觸摸點(diǎn)坐標event.getX()和event.getY(),與方法中的觸摸范圍進(jìn)行判斷,若在區域內則執行觸摸響應。觸摸響應執行后需要在觸摸釋放MotionEvent.ACTION_DOWN進(jìn)行觸摸釋放的處理,及時(shí)釋放當前的觸摸響應。
 
3 Android 平臺觸摸響應的優(yōu)化
值得注意的是,上面觸摸響應MotionEvent.ACTION_DOWN 中,特意定義了一個(gè)臨時(shí)觸摸計數變量keyCount,當計數變量加到一定的程度時(shí)候才執行觸摸響應。這樣處理能有效地防止連續觸摸響應,觸摸不釋放而直 接跳到下一個(gè)狀態(tài),觸摸變量的設置在各個(gè)界面跳轉過(guò)程中尤其是游戲菜單中各界面跳轉中是很有必要的。
觸摸響應中除了各個(gè)菜單界面的響應以外還有一個(gè)重要的響應就是游戲中對主角的操控。主游戲界面的觸摸響應原理和菜單界面是一致的,不同的是觸摸判斷 范圍的選取有差異,菜單界面各個(gè)觸摸范圍是固定的,而游戲界面觸摸區域的劃定是動(dòng)態(tài)的。由于在角色扮演等游戲中主角是核心人物,因此對主角的操控的觸摸響應顯得尤其重要,進(jìn)行觸摸設計的時(shí)候一般以主角為中心進(jìn)行設計,以主角的坐標作為基本點(diǎn)來(lái)判斷。
Android移動(dòng)應用觸摸屏的實(shí)現和優(yōu)化方案
圖3 主角控制時(shí)區域的劃分
圖 3 所示的是主角移動(dòng)時(shí)候的區域劃分,以水平和垂直坐標軸的交點(diǎn)作為主角的坐標中心點(diǎn),將主角周邊的區域劃分為10 個(gè)區域,觸點(diǎn)在區域9-10 的時(shí)候方向向右,對稱(chēng)的區域5-6 的時(shí)候方向向左,區域7-8 的時(shí)候方向向下。對于區域1-4 進(jìn)行進(jìn)一步的劃分,2-3 區域方向向上,只響應向上的操作,區域1 同時(shí)響應右鍵和上鍵,區域4 同時(shí)響應左鍵和上鍵。這樣對區域進(jìn)行細化符合實(shí)際情況,區域1 和區域4 的角度范圍可以根據實(shí)際情況微調。

以主角為中心劃分主角周邊的區域以后,斜上方區域響應斜上方的鍵控,即響應上鍵的時(shí)候同時(shí)響應左鍵或者右鍵;右邊區域響應右鍵;上下區域分別響應上 和下鍵,響應按鍵后執行對應的觸摸按鍵操作,這樣按照區間劃分區域具有很好的用戶(hù)體驗。這的注意的是,主角操控的觸摸鍵控一定得對應觸摸按鍵的釋放,要不然系統接收用戶(hù)的觸摸響應后對應的邏輯會(huì )一直執行下去。當event.getAction()狀態(tài)為MotionEvent.ACTION_UP 時(shí)執行觸摸按鍵的釋放,觸摸按鍵釋放的操作如下:
if ((player.keyStatus & SonicPlayer.KEY_LEFT) == SonicPlayer.KEY_LEFT)
{player.keyUp(SonicPlayer.KEY_LEFT);}//釋放具體的觸摸響應
觸摸屏接口設計模塊的改進(jìn)在于根據主角的中心點(diǎn)細化區域,然后根據劃分的區域執行相應的操作,同時(shí)在觸摸的響應時(shí)增加了計數變量。
 
4 結論
Android 平臺的觸摸響應是非常重要的,本身的觸摸事件處理機制比較復雜,但是觸摸響應實(shí)現時(shí)非常簡(jiǎn)單,只需實(shí)現相關(guān)方法即可。應用的觸屏響應主要分為菜單界面的觸摸響應和游戲界面的觸摸響應,這兩部分的實(shí)現機制是相同的,只不過(guò)劃定觸摸范圍的方法不同。
在菜單各個(gè)界面中主要依靠菜單中各個(gè)圖片相對屏幕的像素位置來(lái)確定觸摸范圍,然后實(shí)現觸屏響應;在游戲界面主要以主角為中心,根據上述的區域范圍劃分來(lái)確定觸摸范圍和相應的操作。在實(shí)現觸摸方法的過(guò)程中,觸摸臨時(shí)計數變量的設置非常必要,起到緩沖的作用,防止一次觸摸鍵控不釋放引發(fā)多個(gè)界面的響應。 本論文主要對Android 平臺的觸摸響應進(jìn)行了實(shí)現和優(yōu)化,大大增強了用戶(hù)體驗,具有很強的應用價(jià)值。

 
 
 
    相關(guān)產(chǎn)品  
 
 
·藍牙音箱的音頻功放/升壓/充電管
·單節鋰電內置升壓音頻功放IC選型
·HT7179 12V升24V內置
·5V USB輸入、三節鋰電升壓型
·網(wǎng)絡(luò )主播聲卡專(zhuān)用耳機放大IC-H
 
M12269 河北發(fā)電機組 HT366 ACM8629 HT338 

業(yè)務(wù)洽談:手機:13713728695(微信同號)   QQ:3003207580  EMAIL:panbo@szczkjgs.com   聯(lián)系人:潘波

地址:深圳市寶安西鄉航城大道航城創(chuàng )新創(chuàng )業(yè)園A5棟307/309

版權所有:深圳市永阜康科技有限公司  備案號:粵ICP備17113496號

在线亚洲人成电影_中文有码国产精品欧美激情_免费大片一级a一级久久三_av天堂东京热无码专区