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

View中如何進行手勢識別onFling動作實現介紹

 更新時間:2013年06月02日 15:55:00   作者:  
下面我們就以實現手勢識別的onFling動作,在CwjView中我們從View類繼承,當然大家可以從TextView等更高層的界面中實現觸控,感興趣的朋友可以了解下哈
很多網友發(fā)現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等更高層的界面中實現觸控。
復制代碼 代碼如下:

class CwjView extends View {
private GestureDetector mGD;
public CwjView(Context context, AttributeSet attrs) {
super(context, attrs);
mGD = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
int dx = (int) (e2.getX() - e1.getX()); //計算滑動的距離
if (Math.abs(dx) > MAJOR_MOVE && Math.abs(velocityX) > Math.abs(velocityY)) { //降噪處理,必須有較大的動作才識別
if (velocityX > 0) {
//向右邊

} else {
//向左邊
}
return true;
} else {
return false; //當然可以處理velocityY處理向上和向下的動作
}
}
});
}
/*提示大家上面僅僅探測了Fling動作僅僅實現了onFling方法,這里相關的還有以下幾種方法來實現具體的可以參考我們以前的文章有詳細的解釋:
boolean onDoubleTap(MotionEvent e)
boolean onDoubleTapEvent(MotionEvent e)
boolean onDown(MotionEvent e)
void onLongPress(MotionEvent e)
boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
void onShowPress(MotionEvent e)
boolean onSingleTapConfirmed(MotionEvent e)
boolean onSingleTapUp(MotionEvent e)
*/
//接下來是重點,讓我們的View接受觸控,需要使用下面兩個方法讓GestureDetector類去處理onTouchEvent和onInterceptTouchEvent方法。
@Override
public boolean onTouchEvent(MotionEvent event) {
mGD.onTouchEvent(event);
return true;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
return mGD.onTouchEvent(event);
}
}

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

相關文章

  • android service實現循環(huán)定時提醒功能

    android service實現循環(huán)定時提醒功能

    這篇文章主要為大家詳細介紹了android service實現循環(huán)定時提醒功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Android Rsa數據加解密的介紹與使用示例

    Android Rsa數據加解密的介紹與使用示例

    RSA是第一個既能用于數據加密也能用于數字簽名的算法。它易于理解和操作,也很流行。想起自己曾經使用過的Rsa非對稱加密算法,閑下來總結一下。方便自己和大家以后使用的時候參考借鑒。下面來一起看看吧。
    2016-09-09
  • React Native學習之Android的返回鍵BackAndroid詳解

    React Native學習之Android的返回鍵BackAndroid詳解

    這篇文章主要給大家介紹了關于React Native學習之Android的返回鍵BackAndroid的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用React Native具有一定的參考學習價值,需要的朋友們下面隨著小編來一起看看吧。
    2017-10-10
  • Android自定義水波紋動畫Layout實例代碼

    Android自定義水波紋動畫Layout實例代碼

    這篇文章主要介紹了Android自定義水波紋動畫Layout的實例代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-11-11
  • Android自定義標尺滑動選擇值效果

    Android自定義標尺滑動選擇值效果

    這篇文章主要為大家詳細介紹了Android自定義標尺滑動選擇值效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Android實現帶有進度條的按鈕效果

    Android實現帶有進度條的按鈕效果

    這篇文章主要為大家詳細介紹了Android實現帶有進度條的按鈕效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • 自定義ListView實現拖拽ListItem項交換位置(附源碼)

    自定義ListView實現拖拽ListItem項交換位置(附源碼)

    本文要實現的是拖拽ListView的Item項,在布局方面還是用基于布局泵LayoutInflater來從不同的Layout模板拿到不同的布局然后將view返回,感興趣的朋友可以了解下哈
    2013-06-06
  • Android使用ViewPager實現頂部tabbar切換界面

    Android使用ViewPager實現頂部tabbar切換界面

    這篇文章主要為大家詳細介紹了使用ViewPager實現頂部tabbar切換界面,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Android Studio實現格式化XML代碼順序

    Android Studio實現格式化XML代碼順序

    這篇文章主要介紹了Android Studio實現格式化XML代碼順序,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Android如何判斷頁面是否全屏

    Android如何判斷頁面是否全屏

    這篇文章主要介紹了Android如何判斷頁面是否全屏,幫助大家更好的理解和學習使用Android,感興趣的朋友可以了解下
    2021-04-04

最新評論

正宁县| 尖扎县| 科技| 平果县| 专栏| 龙游县| 清丰县| 雅江县| 台南县| 乌鲁木齐县| 电白县| 大冶市| 嘉善县| 襄垣县| 灌云县| 南通市| 芒康县| 通许县| 漳浦县| 城固县| 宁津县| 富蕴县| 西充县| 会昌县| 斗六市| 虞城县| 天全县| 莱州市| 麟游县| 巴东县| 家居| 长丰县| 绥宁县| 修文县| 常熟市| 监利县| 壤塘县| 甘洛县| 治多县| 棋牌| 天气|