欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android手勢識別器GestureDetector使用詳解

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

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

構(gòu)造方法:

已過時的有2個,不推薦使用。

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ù)unused暫時沒有使用。

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

1、onDown(MotionEvent e);

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

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

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

3、onLongPress(MotionEvent e);

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

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

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

5、onShowPress(MotionEvent e);

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

6、onSingleTapUp(MotionEvent e);

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

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

mGestureDetector.setOnDoubleTapListener(GestureDetector.OnDoubleTapListener onDoubleListener);

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

1、onDoubleTap(MotionEvent e);

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

2、onDoubleTapEvent(MotionEvent e);

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

3、onSingleTapConfirmed(MotionEvent e);

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

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

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

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

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

相關(guān)文章

  • Android開發(fā)中畫廊視圖Gallery的兩種使用方法分析

    Android開發(fā)中畫廊視圖Gallery的兩種使用方法分析

    這篇文章主要介紹了Android開發(fā)中畫廊視圖Gallery的兩種使用方法,結(jié)合實例形式分析了Android畫廊視圖Gallery的簡單布局與功能實現(xiàn)相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • OpenGL Shader實例分析(8)彩色光圈效果

    OpenGL Shader實例分析(8)彩色光圈效果

    這篇文章主要為大家詳細介紹了OpenGL Shader實例分析第8篇,彩色光圈效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • Android和JavaScript相互調(diào)用的方法

    Android和JavaScript相互調(diào)用的方法

    這篇文章主要介紹了Android和JavaScript相互調(diào)用的方法,實例分析了Android的WebView執(zhí)行JavaScript及JavaScript訪問Android的技巧,需要的朋友可以參考下
    2015-12-12
  • Android?Flutter繪制扇形圖詳解

    Android?Flutter繪制扇形圖詳解

    在開發(fā)過程中通常會遇到一些不規(guī)則的UI,比如不規(guī)則的線條,多邊形,統(tǒng)計圖表等等,用那些通用組件通過組合的方式無法進行實現(xiàn),這就需要我們自己進行繪制。本文將利用Flutter繪制扇形圖,感興趣的可以學(xué)習(xí)一下
    2022-05-05
  • Android基于socket實現(xiàn)的簡單C/S聊天通信功能

    Android基于socket實現(xiàn)的簡單C/S聊天通信功能

    這篇文章主要介紹了Android基于socket實現(xiàn)的簡單C/S聊天通信功能,結(jié)合實例形式分析了Android使用socket實現(xiàn)客服端與服務(wù)器端數(shù)據(jù)的發(fā)送與接收處理技巧,需要的朋友可以參考下
    2016-10-10
  • Android仿淘寶頭條向上滾動廣告條ViewFlipper

    Android仿淘寶頭條向上滾動廣告條ViewFlipper

    這篇文章主要為大家詳細介紹了Android仿淘寶頭條向上滾動廣告條ViewFlipper,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Android實現(xiàn)簡單畫中畫功能

    Android實現(xiàn)簡單畫中畫功能

    這篇文章主要為大家詳細介紹了Android實現(xiàn)簡單畫中畫功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 淺談Android studio 生成apk文件時的 key store path 的問題

    淺談Android studio 生成apk文件時的 key store path 的問題

    這篇文章主要介紹了淺談Android studio 生成apk文件時的 key store path 的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Android自定義流式布局/自動換行布局實例

    Android自定義流式布局/自動換行布局實例

    這篇文章主要介紹了Android自定義流式布局/自動換行布局實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Android四種常見布局方式示例教程

    Android四種常見布局方式示例教程

    Android四種布局有線性布局LinearLayout、相對布局RelativeLayout、網(wǎng)格布局GridLayout、和滾動視圖ScrollView,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-09-09

最新評論