最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android手勢識別器GestureDetector使用詳解

 更新時(shí)間:2017年03月06日 14:38:12   作者:劉洋浪子  
這篇文章主要為大家詳細(xì)介紹了Android手勢識別器GestureDetector的使用方法解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

以前只知道控件的onTouchEvent()事件,它的動(dòng)作有MotionEvent.ACTION_DOWN、MotionEvent.ACTION_MOVE、MotionEvent.ACTION_UP;今天有個(gè)需求,要監(jiān)聽控件的雙擊、拖動(dòng)、滑動(dòng)等事件,這時(shí)onTouchEvent()很明顯不能滿足我們的需求,經(jīng)多方打聽,找到了今天的主角GestureDetector,下面就對它進(jìn)行簡單的學(xué)習(xí)。

構(gòu)造方法:

已過時(shí)的有2個(gè),不推薦使用。

GestureDetector(GestureDetector.onGestureListener listener);

GestureDetector(GestureDetector.onGestureListener listener,Handler handler);

推薦使用。

 GestureDeterctor(Context context,GestureDetector.onGestureListener listener);

 GestureDeterctor(Context context,GestureDetector.onGestureListener listener,Handler handler);

 GestureDeterctor(Context context,GestureDetector.onGestureListener listener,Handler handler,boolean unused);

參數(shù)handler主要用來執(zhí)行延時(shí)操作時(shí)使用,參數(shù)unused暫時(shí)沒有使用。

從構(gòu)成函數(shù)可以看出,當(dāng)我們需要?jiǎng)?chuàng)建一個(gè)GestureDetector對象時(shí),必須給它傳一個(gè)GestureDetector.onGestureListener對象,查看API之后,發(fā)現(xiàn)它是個(gè)接口(interface),創(chuàng)建GestureDetector.onGestureListener的對象時(shí),必須實(shí)現(xiàn)一下幾個(gè)方法:

1、onDown(MotionEvent e);

      當(dāng)用戶按下時(shí)的回調(diào)。

2、onFling(MotionEvent e1,MontionEvent e2,float velocityX,float velocityY);

      當(dāng)用戶快速拖動(dòng),并離開屏幕時(shí),控件還在滑動(dòng)的回調(diào)。

3、onLongPress(MotionEvent e);

      當(dāng)用戶長按控件時(shí)的回調(diào)。

4、onScroll(MotionEvent e1,MotionEvent e2,float distanceX,float distanceY);

      當(dāng)用戶拖著控件(控件本身并沒有動(dòng))滑動(dòng)時(shí)的回調(diào)。

5、onShowPress(MotionEvent e);

      當(dāng)用戶按下,還沒有執(zhí)行移動(dòng)或者抬起的動(dòng)作的回調(diào)。

6、onSingleTapUp(MotionEvent e);

      用戶按下,立即抬起,沒有做其它動(dòng)作時(shí)的回調(diào)。

有了這個(gè)監(jiān)聽之后,我們還可以給GestureDetector設(shè)置雙擊監(jiān)聽,使用的方法是:

mGestureDetector.setOnDoubleTapListener(GestureDetector.OnDoubleTapListener onDoubleListener);

參數(shù)是雙擊監(jiān)聽的對象,GestureDetector.OnDoubleTapListener它也是一個(gè)接口(interface),創(chuàng)建它的對象時(shí),也必須實(shí)現(xiàn)以下幾個(gè)方法。

1、onDoubleTap(MotionEvent e);

      當(dāng)用戶雙擊時(shí)回調(diào)。

2、onDoubleTapEvent(MotionEvent e);

      雙擊間隔事件的回調(diào)。

3、onSingleTapConfirmed(MotionEvent e);

      當(dāng)用戶單擊時(shí)回調(diào)。

上面的兩個(gè)監(jiān)聽,回調(diào)函數(shù)都是必須實(shí)現(xiàn),有時(shí)候我們不需要監(jiān)聽所有的事件,只對自己感興趣的事件進(jìn)行監(jiān)聽,GestureDetector有個(gè)內(nèi)部類幫我們實(shí)現(xiàn)此功能GestureDetector.SimpleOnGestureListener,該類實(shí)現(xiàn)了GestureDetector.onGestureListener、GestureDetector.onDoubleTapListener、GestureDetector.onContextClickListener這三個(gè)接口,并實(shí)現(xiàn)了它們的方法,只不過是空實(shí)現(xiàn),在我們需要這三個(gè)接口的時(shí)候,我們可以創(chuàng)建GestureDetector.SimpleOnGestureListener對象,然后需要監(jiān)聽哪個(gè)事件,我們就重寫它的哪個(gè)方法,下面我把它的所有方法都實(shí)現(xiàn)了,其實(shí)和上邊兩個(gè)接口實(shí)現(xiàn)的方法是一樣。

GestureDetector.SimpleOnGestureListener mGestureDetector = new SimpleOnGestureListener(){ 
 
   @Override 
   public boolean onSingleTapUp(MotionEvent e) { 
    return super.onSingleTapUp(e); 
   } 
 
   @Override 
   public void onLongPress(MotionEvent e) { 
    super.onLongPress(e); 
   } 
 
   @Override 
   public boolean onScroll(MotionEvent e1, MotionEvent e2, 
     float distanceX, float distanceY) { 
    return super.onScroll(e1, e2, distanceX, distanceY); 
   } 
 
   @Override 
   public boolean onFling(MotionEvent e1, MotionEvent e2, 
     float velocityX, float velocityY) { 
    return super.onFling(e1, e2, velocityX, velocityY); 
   } 
 
   @Override 
   public void onShowPress(MotionEvent e) { 
    super.onShowPress(e); 
   } 
 
   @Override 
   public boolean onDown(MotionEvent e) { 
    return super.onDown(e); 
   } 
 
   @Override 
   public boolean onDoubleTap(MotionEvent e) { 
    return super.onDoubleTap(e); 
   } 
 
   @Override 
   public boolean onDoubleTapEvent(MotionEvent e) { 
    return super.onDoubleTapEvent(e); 
   } 
 
   @Override 
   public boolean onSingleTapConfirmed(MotionEvent e) { 
    return super.onSingleTapConfirmed(e); 
   } 
    
  }; 

只有理論沒有實(shí)踐,怎么行呢?這里我也寫了一個(gè)Demo,這個(gè)Demo是我從另一篇博客中抄的,文章的內(nèi)容也是參考他的博客寫的,下面會(huì)把大神的那篇博客地址貼出來。

參考資料:Android GestureDetector用戶手勢檢測實(shí)例講解

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

文成县| 湄潭县| 泸西县| 台前县| 新竹县| 连云港市| 深水埗区| 巴彦县| 焦作市| 昌宁县| 体育| 双鸭山市| 三亚市| 赤水市| 榆林市| 金昌市| 汉沽区| 巴林左旗| 抚远县| 鱼台县| 洪湖市| 普格县| 福鼎市| 当涂县| 平湖市| 黄陵县| 金堂县| 巴彦淖尔市| 航空| 腾冲县| 鸡西市| 开原市| 西贡区| 内江市| 伊通| 丰原市| 汤阴县| 永济市| 贺兰县| 曲松县| 寿光市|