亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

小淇哥基礎教學(三)---GestrueListener手勢監聽

標簽:
Android

小淇哥QQ:91630844(如果想要demo,可以加我QQ,下载地址:http://git.oschina.net/wsxqg/shijiandemo/attach_files) 

1创建一个private GestureDetector detector;activity会实现 OnGestureListener,OnTouchListener, OnDoubleTapListener接口,一个是手势事件,一个是双击事件,一个是触摸事件


可以配合iv.setOnTouchListener(this);触摸事件进行


@Override

public boolean onTouch(View v, MotionEvent event) {

// TODO Auto-generated method stub

return this.detector.onTouchEvent(event);


}

进行链接

//刚刚手指接触到触摸屏的那一刹那,由1个MotionEvent ACTION_DOWN触发 

@Override

public boolean onDown(MotionEvent e) {

// TODO Auto-generated method stub

Log.i(TAG, "onDown   y=" + e.getY());  

return true;

}


这个可以理解为长按之前


// 手指按在触摸屏上,它的时间范围在按下起效,在长按之前,

//由一个1个MotionEvent ACTION_DOWN触发  

//注意和onDown()的区别,强调的是没有松开或者拖动的状态  

@Override

public void onShowPress(MotionEvent e) {

// TODO Auto-generated method stub

Log.i(TAG, "onShowPress");

}


//手指离开触摸屏的那一刹那

//,由一个1个MotionEvent ACTION_UP触发  

@Override

public boolean onSingleTapUp(MotionEvent e) {

// TODO Auto-generated method stub

Log.i(TAG, "onSingleTapUp    y=" + e.getY());

return true;

}


//手指按下且在屏上滑动

//由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE触发

@Override

public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {

// TODO Auto-generated method stub

Log.i(TAG, "onScroll:distanceX = " + distanceX + " distanceY = " + distanceY);

return true;

}


//手指在触摸屏上迅速移动,并松开的动作

//由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE, 1个ACTION_UP触发 

//e1:第1个ACTION_DOWN MotionEvent ,e2:最后一个ACTION_MOVE MotionEven

//velocityX:X轴上的移动速度,像素/秒  ,velocityY:Y轴上的移动速度,像素/秒   


@Override

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

// TODO Auto-generated method stub

Log.i(TAG, "onFling");

if(e1.getX()-e2.getX()>100&&Math.abs(velocityX)>200){

Log.i(TAG, "onFling   向左滑动");

return true;

}else if(e1.getX()-e2.getX()<-100&&Math.abs(velocityX)>200){

Log.i(TAG, "onFling   向右滑动");

return true;

}else if(e1.getY()-e2.getY()>10&&Math.abs(velocityY)>50){

Log.i(TAG, "onFling   向上滑动  上位移="+(e1.getY()-e2.getY()));

return true;

}else if(e1.getY()-e2.getY()<-10&&Math.abs(velocityY)>50){

Log.i(TAG, "onFling   向下滑动    下位移"+(e1.getY()-e2.getY()));

return true;

}

return false;

}


下面这两个是双击事件的

@Override

public boolean onDoubleTap(MotionEvent e) {

Log.i(TAG, "onDoubleTap");

return false;

}


@Override

public boolean onDoubleTapEvent(MotionEvent e) {

Log.i(TAG, "onDoubleTapEvent");

return false;

}

原文链接:http://www.apkbus.com/blog-880881-68578.html

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消