android使用gesturedetector手勢(shì)識(shí)別示例分享
public class MyGestureLintener extends SimpleOnGestureListener {
private Context context;
public MyGestureLintener(Context context) {
super();
this.context = context;
}
// 單擊,觸摸屏按下時(shí)立刻觸發(fā)
/*@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
Toast.makeText(context, "Down " + e.getAction(), Toast.LENGTH_SHORT)
.show();
return true;
}*/
// 雙擊,手指在觸摸屏上迅速點(diǎn)擊第二下時(shí)觸發(fā)
@Override
public boolean onDoubleTap(MotionEvent e) {
// TODO Auto-generated method stub
return super.onDoubleTap(e);
}
// 雙擊的按下跟抬起各觸發(fā)一次
@Override
public boolean onDoubleTapEvent(MotionEvent e) {
// TODO Auto-generated method stub
return super.onDoubleTapEvent(e);
}
// 滑動(dòng),觸摸屏按下后快速移動(dòng)并抬起,會(huì)先觸發(fā)滾動(dòng)手勢(shì),跟著觸發(fā)一個(gè)滑動(dòng)手勢(shì)
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// TODO Auto-generated method stub
return super.onFling(e1, e2, velocityX, velocityY);
}
// 長(zhǎng)按,觸摸屏按下后既不抬起也不移動(dòng),過(guò)一段時(shí)間后觸發(fā)
@Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
Toast.makeText(context, "LONG " + e.getAction(), Toast.LENGTH_SHORT)
.show();
}
// 滾動(dòng),觸摸屏按下后移動(dòng)
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
Toast.makeText(context, "onScroll " + e2.getAction(), Toast.LENGTH_SHORT)
.show();
return true;
}
// 短按,觸摸屏按下后片刻后抬起,會(huì)觸發(fā)這個(gè)手勢(shì),如果迅速抬起則不會(huì)
@Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
Toast.makeText(context, "Show " + e.getAction(), Toast.LENGTH_SHORT)
.show();
}
// 單擊確認(rèn),即很快的按下并抬起,但并不連續(xù)點(diǎn)擊第二下
/*@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
// TODO Auto-generated method stub
Toast.makeText(context, "onSingleTapConfirmed " + e.getAction(), Toast.LENGTH_SHORT)
.show();
return true;
}*/
// 抬起,手指離開(kāi)觸摸屏?xí)r觸發(fā)(長(zhǎng)按、滾動(dòng)、滑動(dòng)時(shí),不會(huì)觸發(fā)這個(gè)手勢(shì))
/*@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
Toast.makeText(context, "onSingleTapUp " + e.getAction(), Toast.LENGTH_SHORT)
.show();
return true;
}*/
public class MainActivity extends Activity {
private GestureDetector mGestureDetector;//手勢(shì)對(duì)象
private MyGestureLintener myGestureLintener;//手勢(shì)監(jiān)聽(tīng)的接口對(duì)象
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myGestureLintener = new MyGestureLintener(this);
//手勢(shì)對(duì)象的構(gòu)造方法
mGestureDetector = new GestureDetector(this,
myGestureLintener);
}
/**GestureDetector類(lèi)的onTouchEvent方法用來(lái)辨別不同的手勢(shì)*/
@Override
public boolean onTouchEvent(MotionEvent event) {
boolean b = false;
int i = event.getAction();
int j = MotionEvent.ACTION_MOVE;
System.out.println(i+"<----------------->"+j);
b = mGestureDetector.onTouchEvent(event);
if (b) {
Intent in = new Intent();
in.setClass(this, testActivity.class);
startActivity(in);
}
return b;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
- Android GestureDetector用戶手勢(shì)檢測(cè)實(shí)例講解
- Android GestureDetector手勢(shì)滑動(dòng)使用實(shí)例講解
- Android手勢(shì)識(shí)別器GestureDetector使用詳解
- Android自定義viewgroup可滾動(dòng)布局 GestureDetector手勢(shì)監(jiān)聽(tīng)(5)
- Android自定義GestureDetector實(shí)現(xiàn)手勢(shì)ImageView
- Android GestureDetector實(shí)現(xiàn)手勢(shì)滑動(dòng)效果
- Android編程使用GestureDetector實(shí)現(xiàn)簡(jiǎn)單手勢(shì)監(jiān)聽(tīng)與處理的方法
- Android觸摸及手勢(shì)操作GestureDetector
- Android使用手勢(shì)監(jiān)聽(tīng)器GestureDetector遇到的不響應(yīng)問(wèn)題
- Android如何使用GestureDetector進(jìn)行手勢(shì)檢測(cè)詳解
相關(guān)文章
android視頻播放簡(jiǎn)單實(shí)現(xiàn)示例(VideoView&MediaPlayer)
本篇文章主要介紹了android視頻播放簡(jiǎn)單實(shí)現(xiàn)示例(VideoView&MediaPlayer),具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08Android 實(shí)現(xiàn)桌面未讀角標(biāo)
本文主要介紹了Android實(shí)現(xiàn)桌面未讀角標(biāo)的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-04-04Android自定義動(dòng)畫(huà)根據(jù)控件Y軸旋轉(zhuǎn)動(dòng)畫(huà)(仿紅包)
這篇文章主要介紹了Android自定義動(dòng)畫(huà)根據(jù)控件Y軸旋轉(zhuǎn)動(dòng)畫(huà)(仿紅包),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06Android利用Glide獲取圖片真正的寬高的實(shí)例
本篇文章主要介紹了Android利用Glide獲取圖片真正的寬高的實(shí)例,具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08flutter實(shí)現(xiàn)底部導(dǎo)航欄
這篇文章主要為大家詳細(xì)介紹了flutter實(shí)現(xiàn)底部導(dǎo)航欄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Android Studio設(shè)置、改變字體和主題的方法
這篇文章主要介紹了Android Studio設(shè)置、改變字體和主題的方法,需要的朋友可以參考下2018-03-03Android自定義水波紋底部導(dǎo)航的實(shí)現(xiàn)
TabLayout作為導(dǎo)航組件來(lái)說(shuō),使用場(chǎng)景非常的多,也意味著要滿足各種各樣的需求,這篇文章主要介紹了Android自定義水波紋底部導(dǎo)航的實(shí)現(xiàn)2022-08-08