Skip to content

Instantly share code, notes, and snippets.

@lithid
Created December 10, 2012 15:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lithid/4251170 to your computer and use it in GitHub Desktop.
Save lithid/4251170 to your computer and use it in GitHub Desktop.
OnTouchListener
public class MainActivity extends Activity implements OnTouchListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GridView gv = (GridView) findViewById(R.id.grid);
gv.setOnTouchListener(this); // Uses onTouch override
}
@Override
public boolean onTouch(View v, MotionEvent event) {
boolean defaultResult = v.onTouchEvent(event);
switch(event.getAction()){
case MotionEvent.ACTION_DOWN: {
downX = event.getX();
downY = event.getY();
return true;
}
case MotionEvent.ACTION_UP: {
upX = event.getX();
upY = event.getY();
float deltaX = downX - upX;
float deltaY = downY - upY;
if((Math.abs(deltaX) > MIN_DISTANCE) || (Math.abs(deltaY) > MIN_DISTANCE)){
if (Math.abs(deltaX) > Math.abs(deltaY)) {
if(deltaX < 0) { Log.i(logTag, "LeftToRight"); return true; }
if(deltaX > 0) { Log.i(logTag, "RightToLeft"); return true; }
}
if (Math.abs(deltaX) < Math.abs(deltaY)) {
if(deltaY < 0) { Log.i(logTag, "TopToBottom"); return true; }
if(deltaY > 0) { Log.i(logTag, "BottomToTop"); return true; }
}
} else {
Log.i(logTag, "Swipe was only " + Math.abs(deltaX) + " long, need at least " + MIN_DISTANCE);
return false;
}
return false;
}
default:
return defaultResult;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment