android手勢滑動——左右滑動效果實現

/**
 * 手勢監聽
 * 
 * @author lifengfeng
 * 
 */
public class MainActivity extends Activity implements OnTouchListener,
		OnGestureListener {
	// 創建一個用於識別收拾的GestureDetector對象
	@SuppressWarnings("deprecation")
	private GestureDetector detector = new GestureDetector(this);
	// 新建一個LinearLayout佈局對象,這裏是指主頁面的佈局
	private LinearLayout myLayout;
	// 限制最小移動像素
	private int FLING_MIN_DISTANCE = 110;
	// 定義的Toast提示框顯示時間
	private int TIME_OUT = 1000;
	private static final String TAG = "Main";

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		myLayout = (LinearLayout) findViewById(R.id.test_layout);
		// 爲佈局綁定監聽
		myLayout.setOnTouchListener(this);
	}

	/**
	 * 手勢滑動時別調用
	 */
	@Override
	public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
			float velocityY) {
		// X軸的座標位移大於FLING_MIN_DISTANCE,且移動速度大於FLING_MIN_VELOCITY個像素/秒
		if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE) {
			// 向左滑動
			Toast.makeText(this, "向左滑動", TIME_OUT).show();
		} else if (e2.getX() - e1.getX() > FLING_MIN_DISTANCE) {
			// 向右滑動
			Toast.makeText(this, "向右滑動", TIME_OUT).show();
		}
		return false;
	}

	/**
	 * 長按時被調用
	 */
	@Override
	public void onLongPress(MotionEvent e) {
		Log.d(TAG, "觸發長按回調");
	}

	/**
	 * 滾動時調用
	 */
	@Override
	public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
			float distanceY) {
		return false;
	}

	/**
	 * 在按下動作時被調用
	 */
	@Override
	public boolean onDown(MotionEvent e) {
		Log.d(TAG, "按下回調");
		return false;
	}

	/**
	 * 按住時被調用
	 */
	@Override
	public void onShowPress(MotionEvent e) {
		Log.d(TAG, "按住不松回調");
	}

	/**
	 * 擡起時被調用
	 */
	@Override
	public boolean onSingleTapUp(MotionEvent e) {
		Log.d(TAG, "觸發擡起回調");
		return false;
	}

	/**
	 * 重寫OnTouchListener的onTouch方法 此方法在觸摸屏被觸摸,即發生觸摸事件(接觸和撫摸兩個事件)的時候被調用
	 */
	@Override
	public boolean onTouch(View v, MotionEvent event) {
		detector.onTouchEvent(event);
		return true;
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章