1. 程式人生 > >Android使用GestureDetector實現手勢滑動效果

Android使用GestureDetector實現手勢滑動效果

void tco event else if rate method sta pro 手勢滑動

直接看實例:
package com.example.gesturedetector;

import android.os.Bundle;
import android.app.Activity;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.Menu;
import android.view.MotionEvent;
import android.widget.Toast;

public class MainActivity extends Activity implements OnGestureListener {

private GestureDetector mGestureDetector;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mGestureDetector = new GestureDetector(this, this);
}

@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
mGestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}

@Override
public boolean onDown(MotionEvent arg0) {
// TODO Auto-generated method stub
//Toast.makeText(this, "onDown", Toast.LENGTH_SHORT).show();
return false;
}

@Override
public boolean onFling(MotionEvent startEvent, MotionEvent endEvent,
float velocityX, float velocityY) {
// TODO Auto-generated method stub
if (startEvent.getY() - endEvent.getY() > 100) {
Toast.makeText(this, "手勢向上滑動", Toast.LENGTH_SHORT).show();
return true;
} else if (startEvent.getY() - endEvent.getY() < -100) {
Toast.makeText(this, "手勢向下滑動", Toast.LENGTH_SHORT).show();
return true;
} else if (startEvent.getX() - endEvent.getX() > 100) {
Toast.makeText(this, "手勢向左滑動", Toast.LENGTH_SHORT).show();
return true;
} else if (startEvent.getX() - endEvent.getX() < -100) {
Toast.makeText(this, "手勢向右滑動", Toast.LENGTH_SHORT).show();
return true;
}
return false;
}

@Override
public void onLongPress(MotionEvent arg0) {
// TODO Auto-generated method stub
//Toast.makeText(this, "onLongPress ", Toast.LENGTH_SHORT).show();
}

@Override
public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2,
float arg3) {
// TODO Auto-generated method stub
//Toast.makeText(this, "onScroll", Toast.LENGTH_SHORT).show();
return false;
}

@Override
public void onShowPress(MotionEvent arg0) {
// TODO Auto-generated method stub
//Toast.makeText(this, "onShowPress", Toast.LENGTH_SHORT).show();
}

@Override
public boolean onSingleTapUp(MotionEvent arg0) {
// TODO Auto-generated method stub
//Toast.makeText(this, "onSingleTapUp", Toast.LENGTH_SHORT).show();
return false;
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

}
事件解釋:
1.   onDown(MotionEvent e):down事件;
2.   onSingleTapUp(MotionEvent e):一次點擊up事件;
3.   onShowPress(MotionEvent e):down事件發生而move或則up還沒發生前觸發該事件;
4.   onLongPress(MotionEvent e):長按事件;
5.   onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY):滑動手勢事件;
6.   onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY):在屏幕上拖動事件。
‘).text(i)); }; $numbering.fadeIn(1700); }); });

Android使用GestureDetector實現手勢滑動效果