View中如何進(jìn)行手勢(shì)識(shí)別onFling動(dòng)作實(shí)現(xiàn)介紹
下面我們就以實(shí)現(xiàn)手勢(shì)識(shí)別的onFling動(dòng)作,在CwjView中我們從View類(lèi)繼承,當(dāng)然大家可以從TextView等更高層的界面中實(shí)現(xiàn)觸控。
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()); //計(jì)算滑動(dòng)的距離
if (Math.abs(dx) > MAJOR_MOVE && Math.abs(velocityX) > Math.abs(velocityY)) { //降噪處理,必須有較大的動(dòng)作才識(shí)別
if (velocityX > 0) {
//向右邊
} else {
//向左邊
}
return true;
} else {
return false; //當(dāng)然可以處理velocityY處理向上和向下的動(dòng)作
}
}
});
}
/*提示大家上面僅僅探測(cè)了Fling動(dòng)作僅僅實(shí)現(xiàn)了onFling方法,這里相關(guān)的還有以下幾種方法來(lái)實(shí)現(xiàn)具體的可以參考我們以前的文章有詳細(xì)的解釋:
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)
*/
//接下來(lái)是重點(diǎn),讓我們的View接受觸控,需要使用下面兩個(gè)方法讓GestureDetector類(lèi)去處理onTouchEvent和onInterceptTouchEvent方法。
@Override
public boolean onTouchEvent(MotionEvent event) {
mGD.onTouchEvent(event);
return true;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
return mGD.onTouchEvent(event);
}
}
本節(jié)關(guān)于View中手勢(shì)識(shí)別的內(nèi)容就講這些。大家知道,很多Android設(shè)備都提供了重力感應(yīng)器和加速度感應(yīng)器,而稍好些的設(shè)備還具備陀螺儀感應(yīng)器,提供測(cè)試角速度功能。下一節(jié)將為大家講解重力感應(yīng)知識(shí)。
- php自動(dòng)識(shí)別文字編碼并轉(zhuǎn)換為目標(biāo)編碼的方法
- 基于jquery的textarea發(fā)布框限制文字字?jǐn)?shù)輸入(添加中文識(shí)別)
- 舉例講解Java的RTTI運(yùn)行時(shí)類(lèi)型識(shí)別機(jī)制
- java識(shí)別一篇文章中某單詞出現(xiàn)個(gè)數(shù)的方法
- Java基于直方圖應(yīng)用的相似圖片識(shí)別實(shí)例
- Java進(jìn)階教程之運(yùn)行時(shí)類(lèi)型識(shí)別RTTI機(jī)制
- java網(wǎng)絡(luò)編程之識(shí)別示例 獲取主機(jī)網(wǎng)絡(luò)接口列表
- java asp分析各種搜索引擎的關(guān)鍵字,自動(dòng)識(shí)別url 中關(guān)鍵字的編碼
- 基于OpenCV的PHP圖像人臉識(shí)別技術(shù)
- 識(shí)別率很高的java文字識(shí)別技術(shù)
相關(guān)文章
Android自定義View繪制貝塞爾曲線中小紅點(diǎn)的方法
貝塞爾曲線的本質(zhì)是通過(guò)數(shù)學(xué)計(jì)算的公式來(lái)繪制平滑的曲線,分為一階,二階,三階及多階。但是這里不講數(shù)學(xué)公式和驗(yàn)證,那些偉大的數(shù)學(xué)家已經(jīng)證明過(guò)了,所以就只講講Android開(kāi)發(fā)中的運(yùn)用吧2023-02-02Android中RecyclerView布局代替GridView實(shí)現(xiàn)類(lèi)似支付寶的界面
RecyclerView比GridView來(lái)得更加強(qiáng)大,不僅是在分割線的繪制方面,在條目的編輯上也做得同樣出色,下面就來(lái)看一下Android中RecyclerView布局代替GridView實(shí)現(xiàn)類(lèi)似支付寶的界面的實(shí)例2016-06-06Android程序打開(kāi)和對(duì)輸入法的操作(打開(kāi)/關(guān)閉)
整理了一下Android下對(duì)輸入法的操作:打開(kāi)輸入法窗口、關(guān)閉出入法窗口、如果輸入法打開(kāi)則關(guān)閉,如果沒(méi)打開(kāi)則打開(kāi)、獲取輸入法打開(kāi)的狀態(tài)2013-05-05Android仿淘寶頭條基于TextView實(shí)現(xiàn)上下滾動(dòng)通知效果
這篇文章主要介紹了Android TextView實(shí)現(xiàn)上下滾動(dòng)通知效果,需要的朋友可以參考下2017-03-03Android實(shí)現(xiàn)圖片滾動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)圖片滾動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09Android實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)的全過(guò)程記錄
對(duì)于android軟件開(kāi)發(fā)初級(jí)學(xué)習(xí)者來(lái)說(shuō),簡(jiǎn)單的頁(yè)面跳轉(zhuǎn)是必學(xué)的,這篇文章主要給大家介紹了關(guān)于Android實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-10-10解析Android點(diǎn)擊事件分發(fā)機(jī)制
本篇文章主要介紹了解析Android點(diǎn)擊事件分發(fā)機(jī)制,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12Android ItemDecoration 實(shí)現(xiàn)分組索引列表的示例代碼
本篇文章主要介紹了Android ItemDecoration 實(shí)現(xiàn)分組索引列表的示例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下2017-10-10Android判斷手機(jī)是否是小米MIUI系統(tǒng)的方法
這篇文章主要介紹了Android判斷手機(jī)是否是小米MIUI系統(tǒng)的方法的相關(guān)資料,需要的朋友可以參考下2016-02-02