Created
July 7, 2011 07:11
-
-
Save bugcloud/1069025 to your computer and use it in GitHub Desktop.
detecting slide on Android.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.bugcloud.android.slider; | |
import android.app.Activity; | |
import android.util.Log; | |
import android.view.MotionEvent; | |
public class SlidableActivity extends Activity { | |
protected static final String TAG = "SlidableActivity"; | |
private static final int ACTION_TYPE_DEFAULT = 0; | |
private static final int ACTION_TYPE_UP = 1; | |
private static final int ACTION_TYPE_RIGHT = 2; | |
private static final int ACTION_TYPE_DOWN = 3; | |
private static final int ACTION_TYPE_LEFT = 4; | |
private static final int SLIDE_RANGE = 100; | |
private float mTouchStartPointX; | |
private float mTouchStartPointY; | |
private int mActionType = ACTION_TYPE_DEFAULT; | |
@Override | |
public boolean onTouchEvent(MotionEvent event) { | |
int x = (int) event.getRawX(); | |
int y = (int) event.getRawY(); | |
switch (event.getAction()) { | |
case MotionEvent.ACTION_DOWN: | |
mTouchStartPointX = event.getRawX(); | |
mTouchStartPointY = event.getRawY(); | |
break; | |
case MotionEvent.ACTION_MOVE: | |
if (mTouchStartPointX - x > SLIDE_RANGE) { | |
mActionType = ACTION_TYPE_LEFT; | |
} else if (x - mTouchStartPointX > SLIDE_RANGE) { | |
mActionType = ACTION_TYPE_RIGHT; | |
} else if (mTouchStartPointY - y > SLIDE_RANGE) { | |
mActionType = ACTION_TYPE_UP; | |
} else if (y - mTouchStartPointY > SLIDE_RANGE) { | |
mActionType = ACTION_TYPE_DOWN; | |
} | |
break; | |
case MotionEvent.ACTION_UP: | |
if (mActionType == ACTION_TYPE_UP) { | |
slideUp(); | |
} else if (mActionType == ACTION_TYPE_RIGHT) { | |
slideToRight(); | |
} else if (mActionType == ACTION_TYPE_DOWN) { | |
slideDown(); | |
} else if (mActionType == ACTION_TYPE_LEFT) { | |
slideToLeft(); | |
} | |
break; | |
default: | |
break; | |
} | |
return true; | |
} | |
protected void slideToLeft() { | |
Log.d(TAG, "slideToLeft() was called."); | |
} | |
protected void slideToRight() { | |
Log.d(TAG, "slideToRight() was called."); | |
} | |
protected void slideUp() { | |
Log.d(TAG, "slideUp() was called."); | |
} | |
protected void slideDown() { | |
Log.d(TAG, "slideDown() was called."); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment