成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android游戲開發之十一:View中如何進行手勢識別

移動開發 Android 游戲開發
我們在進行Android游戲開發時會用到很多種控制,包括前面講到的按鍵和軌跡球控制方式,除此之外還有手勢操作、重力感應等多種控制方式需要了解掌握。本節主要為大家講解在View中如何進行手勢識別。

很多網友發現Android中手勢識別提供了兩個類,由于Android 1.6以下的版本比如cupcake中無法使用android.view.GestureDetector,而 android.gesture.Gesture是Android 1.6開始支持的,考慮到仍然有使用Android 1.5固件的網友,就來看下兼容性更強的android.view.GestureDetector。在 android.view.GestureDetector類中有很多種重載版本,下面我們僅提到能夠自定義在View中的兩種方法,分別為 GestureDetector(Context context, GestureDetector.OnGestureListener listener) 和GestureDetector(Context context, GestureDetector.OnGestureListener listener, Handler handler) 。我們可以看到***個參數為Context,所以我們想附著到某View時,最簡單的方法就是直接從超類派生傳遞Context,實現 GestureDetector里中提供一些接口。

下面我們就以實現手勢識別的onFling動作,在CwjView中我們從View類繼承,當然大家可以從TextView等更高層的界面中實現觸控。

  1. class CwjView extends View {    
  2.     private GestureDetector mGD;    
  3.     public CwjView(Context context, AttributeSet attrs) {    
  4.         super(context, attrs);    
  5.         mGD = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {    
  6.                 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {    
  7.                     int dx = (int) (e2.getX() - e1.getX()); //計算滑動的距離    
  8.                     if (Math.abs(dx) > MAJOR_MOVE && Math.abs(velocityX) > Math.abs(velocityY)) { //降噪處理,必須有較大的動作才識別    
  9.                         if (velocityX > 0) {    
  10.                            //向右邊    
  11.    
  12.                         } else {    
  13.                             //向左邊    
  14.                         }    
  15.                         return true;    
  16.                     } else {    
  17.                         return false;  //當然可以處理velocityY處理向上和向下的動作    
  18.                     }    
  19.                 }    
  20.             });    
  21.     }    
  22.   /*提示大家上面僅僅探測了Fling動作僅僅實現了onFling方法,這里相關的還有以下幾種方法來實現具體的可以參考我們以前的文章有詳細的解釋:   
  23.  boolean  onDoubleTap(MotionEvent e)    
  24.  boolean  onDoubleTapEvent(MotionEvent e)    
  25.  boolean  onDown(MotionEvent e)    
  26.  void  onLongPress(MotionEvent e)    
  27.  boolean  onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)    
  28.  void  onShowPress(MotionEvent e)    
  29.  boolean  onSingleTapConfirmed(MotionEvent e)    
  30.  boolean  onSingleTapUp(MotionEvent e)    
  31.  */   
  32.    //接下來是重點,讓我們的View接受觸控,需要使用下面兩個方法讓GestureDetector類去處理onTouchEvent和onInterceptTouchEvent方法。    
  33.     @Override   
  34.     public boolean onTouchEvent(MotionEvent event) {      
  35.         mGD.onTouchEvent(event);    
  36.         return true;    
  37.     }    
  38.     @Override   
  39.     public boolean onInterceptTouchEvent(MotionEvent event) {    
  40.         return mGD.onTouchEvent(event);    
  41.     }    
  42. }   

本節關于View中手勢識別的內容就講這些。大家知道,很多Android設備都提供了重力感應器和加速度感應器,而稍好些的設備還具備陀螺儀感應器,提供測試角速度功能。下一節將為大家講解重力感應知識。

責任編輯:閆佳明 來源: jizhuomi
相關推薦

2024-07-08 08:38:37

Python游戲開發

2023-12-11 08:25:15

Java框架Android

2010-02-06 14:52:53

Android平臺

2010-02-01 14:48:43

2013-05-20 17:33:44

Android游戲開發自定義View

2011-09-02 14:37:32

UbuntuAndroid

2022-05-17 12:25:59

物聯網智能建筑樓宇自控

2018-04-18 08:57:59

AndroidiOS移動系統

2010-03-03 15:06:52

Android 游戲開

2010-02-05 16:35:35

Android操作系統

2017-09-08 13:30:32

深度學習圖像識別卷積神經網絡

2013-05-20 17:07:26

2010-02-04 17:42:15

Android數據庫

2011-08-22 12:05:50

Linux

2013-01-05 10:16:26

需求開發

2021-05-17 14:02:38

Swift 多重排序

2021-12-01 15:52:56

安全開發測試

2013-05-21 13:33:02

Android游戲開發異步音樂播放

2010-06-12 15:41:28

UML建模

2013-05-20 17:04:09

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产中文字幕在线 | 国产亚洲欧美在线 | 色综合一区 | 亚洲欧美日韩在线不卡 | 日韩欧美在 | 欧美xxxx在线 | 一区二区小视频 | 免费特级黄毛片 | 另类 综合 日韩 欧美 亚洲 | 欧美日批 | 亚洲国产成人精品女人 | 91久久北条麻妃一区二区三区 | 国产精品免费一区二区三区四区 | 欧美日韩在线免费观看 | 浮生影院免费观看中文版 | 69精品久久久久久 | 日韩国产一区二区三区 | 国产在线一区二 | 欧美精品一二三 | 亚洲精品视频在线观看视频 | 久在线观看 | 日本a v在线播放 | 日本黄色免费大片 | 久久伦理中文字幕 | 久久久久99| 亚洲欧美精品在线观看 | 国产成人精品视频在线观看 | 国产午夜精品视频 | 岛国视频 | 中文字幕在线一区 | 在线成人免费视频 | 美女福利视频一区 | 黄色av网站在线观看 | 亚洲伦理自拍 | 男人亚洲天堂 | 日韩一级免费观看 | 青青久久久| 在线免费观看视频黄 | 精品一区二区三区91 | 精品一区二区三区在线视频 | 精品视频www |