真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Android開發(fā)中實現(xiàn)手勢識別功能的方法-創(chuàng)新互聯(lián)

Android開發(fā)中實現(xiàn)手勢識別功能的方法?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),寧國企業(yè)網(wǎng)站建設(shè),寧國品牌網(wǎng)站建設(shè),網(wǎng)站定制,寧國網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,寧國網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

觸摸交互中的概念

常用事件

首先要了解一些常用的事件:
ACTION_DOWN:第一個手指按下
ACTION_UP:第一個手指抬起
ACTION_POINTER_DOWN:第二、三、四等等手指按下
ACTION_POINTER_UP: 第二、三、四等等手指抬起
ACTION_MOVE: 手指移動
ACTION_OUTSIDE:手指移出了屏幕
ACTION_CANCEL:收到前驅(qū)事件比如ACTION_DOWN后,后續(xù)事件被父控件攔截的情況下產(chǎn)生

上面我們可以看到,除了第一個手指有唯一的action down和action up事件觸發(fā),后續(xù)其它手指的按下和移動,都觸發(fā)的是同一個事件。那么這個時候就可能涉及到對不同手指區(qū)分的邏輯處理。

MotionEvent

MotionEvent中用action code和坐標值描述了觸摸運動的軌跡,action code值描述了運動狀態(tài)的改變,坐標值描述了軌跡的位置和一起其它信息。
比如 ACTION_DOWN表明手指開始觸碰到屏幕,X和Y的坐標軸值表明了當前的位置。

上面僅僅是基本的單指操作,但是現(xiàn)在很多設(shè)備都提供多指操作的功能。多個手指每個手指都被在第一次觸碰屏幕的時候分配一個pointer id,直到這個手指離開相應(yīng)的pointer id才變無效。當?shù)谝粋€手指按下時,會觸發(fā)ACTION_DOWN,ACTION_MOVE一系列的事件,同時當?shù)诙€手指按下的時候,又會觸發(fā) ACTION_POINTER_DOWN事件,此后兩個手指移動的時候,只會觸發(fā)ACTION_MOVE事件。當一個ACTION_MOVE觸發(fā)的時,通過使用 getPointerId(第幾個手指) 方法去獲取pointer id明確是哪一個手指,然后使用使用findPointerIndex 方法去獲得pointer index,pointer index代表了這一個MotionEvent事件中哪一個是當前pointer對應(yīng)的事件。

MotionEvent事件捆綁

結(jié)合上面的概念,再來說一下MotionEvent的捆綁。為了處理效率,安卓中會把MOVE動作中多個坐標點捆綁在一個MotionEvent中,對于單個手指操作,getX返回的是最近一點的坐標,getHistoricalX 返回的是之前的坐標??聪旅嬉欢未a:

 void printSamples(MotionEvent ev) {
   //獲取MotionEvent中捆綁的坐標點
   final int historySize = ev.getHistorySize();
   //獲取手指數(shù)目
   final int pointerCount = ev.getPointerCount();
   for (int h = 0; h < historySize; h++) {
     System.out.printf("At time %d:", ev.getHistoricalEventTime(h));
     for (int p = 0; p < pointerCount; p++) {
       System.out.printf(" pointer %d: (%f,%f)",
         ev.getPointerId(p), ev.getHistoricalX(p, h), ev.getHistoricalY(p, h));
     }
   }
 }

文章題目:Android開發(fā)中實現(xiàn)手勢識別功能的方法-創(chuàng)新互聯(lián)
分享鏈接:http://weahome.cn/article/dcjpeg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部