Android使用GestureDetector实现手势滑动效果

来源:互联网 发布:it绩效 编辑:程序博客网 时间:2024/05/04 17:34
直接看实例:
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;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mGestureDetector = new GestureDetector(this, this);}@Overridepublic boolean onTouchEvent(MotionEvent event) {// TODO Auto-generated method stubmGestureDetector.onTouchEvent(event);return super.onTouchEvent(event);}@Overridepublic boolean onDown(MotionEvent arg0) {// TODO Auto-generated method stub//Toast.makeText(this, "onDown", Toast.LENGTH_SHORT).show();return false;}@Overridepublic boolean onFling(MotionEvent startEvent, MotionEvent endEvent,float velocityX, float velocityY) {// TODO Auto-generated method stubif (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;}@Overridepublic void onLongPress(MotionEvent arg0) {// TODO Auto-generated method stub//Toast.makeText(this, "onLongPress ", Toast.LENGTH_SHORT).show();}@Overridepublic 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;}@Overridepublic void onShowPress(MotionEvent arg0) {// TODO Auto-generated method stub//Toast.makeText(this, "onShowPress", Toast.LENGTH_SHORT).show();}@Overridepublic boolean onSingleTapUp(MotionEvent arg0) {// TODO Auto-generated method stub//Toast.makeText(this, "onSingleTapUp", Toast.LENGTH_SHORT).show();return false;}@Overridepublic 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):在屏幕上拖动事件。
1 0
原创粉丝点击