您的位置:首页 > 移动开发 > Android开发

Android手势实现切换界面的效果

2012-08-02 15:49 459 查看
定义手势对象detector=new GestureDetector(new GestureListener());
listView.setOnTouchListener(new TouhListener());//设置监听手势
//触摸屏幕监听
class TouhListener implements OnTouchListener{

@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
//			Toast.makeText(getApplicationContext(), "----?", event.getAction()).show();
return detector.onTouchEvent(event);
}

}
//手势滑动监听
class GestureListener implements OnGestureListener{

@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
/*
* 当触摸屏幕是使用这个函数
*/
//			Toast.makeText(getApplicationContext(), "-----------> onDown", Toast.LENGTH_LONG).show();
return false;
}

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

try {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
return false;
// right to left swipe
if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
Log.i("test ", "right");
Animation reverse = AnimationUtils
.loadAnimation(AgendaGridViewActivity.this, R.anim.push_left);
if(index == 3){
setSelect(index = 0,reverse);
}else{
setSelect(index =index+1,reverse);
}
gridMenus.setNextFocusRightId(View.FOCUS_DOWN);
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
Log.i("test ", "left");
Animation reverse = AnimationUtils
.loadAnimation(AgendaGridViewActivity.this, R.anim.push_right);

if(index == 0){
setSelect(index = 3,reverse);
}else{
setSelect(index = index-1,reverse);
}
}
} catch (Exception e) {
// nothing
}
return false;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: