android开发中为activity添加左右手势识别。如右滑关闭当前页面
/* * for左右手势 * 1.复制以下的内容到目标Activity * 2.目标Activity的onCreate()调用initGesture() * 3.目标Activity需implements OnTouchListener, OnGestureListener */ private GestureDetector mGestureDetector; private int verticalMinDistance = 180; private int minVelocity = 0; private void initGesture() { mGestureDetector = new GestureDetector((OnGestureListener) this); } public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { if (e1.getX() - e2.getX() > verticalMinDistance && Math.abs(velocityX) > minVelocity) { // 切换Activity // Intent intent = new Intent(ViewSnsActivity.this, UpdateStatusActivity.class); // startActivity(intent); //Toast.makeText(this, "向左手势", Toast.LENGTH_SHORT).show(); } else if (e2.getX() - e1.getX() > verticalMinDistance && Math.abs(velocityX) > minVelocity) { // 切换Activity // Intent intent = new Intent(ViewSnsActivity.this, UpdateStatusActivity.class); // startActivity(intent); //Toast.makeText(this, "向右手势", Toast.LENGTH_SHORT).show(); finish(); overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); } return false; } @Override public void onLongPress(MotionEvent arg0) { // TODO Auto-generated method stub } @Override public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2, float arg3) { // TODO Auto-generated method stub return false; } @Override public void onShowPress(MotionEvent arg0) { // TODO Auto-generated method stub } @Override public boolean onSingleTapUp(MotionEvent arg0) { // TODO Auto-generated method stub return false; } @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub return mGestureDetector.onTouchEvent(event); } @Override public boolean onDown(MotionEvent arg0) { // TODO Auto-generated method stub return false; } @Override public boolean dispatchTouchEvent(MotionEvent ev) { mGestureDetector.onTouchEvent(ev); return super.dispatchTouchEvent(ev); }
时间: 2024-10-13 20:37:36