public class MainActivity extends AppCompatActivity {
public static final String TAG = "MainActivity";
GestureDetector mGestureDetector;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mGestureDetector = new GestureDetector(new GestureDetectorListener());
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return mGestureDetector.onTouchEvent(event);
}
//distance 向x正方向(右) 为负 ,向Y正反向(下)为负
class GestureDetectorListener implements GestureDetector.OnGestureListener {
@Override
public boolean onDown(MotionEvent e) {
//手指接触屏幕,ACTION_DOWN
Log.i(TAG,"onDown:e.getX()="+e.getX()+":e.getY()="+e.getY());
return false;
}
@Override
public void onShowPress(MotionEvent e) {
//ACTION_DOWN 之后 LongPress之前
Log.i(TAG,"onShowPress:e.getX()="+e.getX()+":e.getY()="+e.getY());
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
//ACTION_DOWN - ACTION_UP之后 单击事件
Log.i(TAG,"onSingleTapUp:e.getX()="+e.getX()+":e.getY()="+e.getY());
return false;
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
//ACTION_MOVE 滑动
Log.i(TAG,"onScroll:e1.getX()="+e1.getX()+":e1.getY()="+e1.getY()+"|||e2.getX()="+e2.getX()+":e2.getY()="+e2.getY()+"|||distanceX="+distanceX+":distanceY="+distanceY);
return false;
}
@Override
public void onLongPress(MotionEvent e) {
//长点击 触发前会触发shwoPress
Log.i(TAG,"onLongPress:e.getX()="+e.getX()+":e.getY()="+e.getY());
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
//滑动速度大于 MINIMUM_FLING_VELOCITY(默认50)调用。发生在onScroll之后
Log.i(TAG,"onFling:e1.getX()="+e1.getX()+":e1.getY()="+e1.getY()+"|||e2.getX()="+e2.getX()+":e2.getY()="+e2.getY()+"|||distanceX="+velocityX+":velocityY="+velocityY);
return false;
}
}
}
网友评论