package com.example.love.rsqfanye;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.webkit.WebView;
import android.widget.AdapterView;
import android.widget.ListView;
/**
* @author liwan
* 这里的GestureList是在xml布局的
*/
public class GestureTestActivity extends Activity {
/**
* 自定义的listview
*/
ListView gestureListView;
/**
* 自定义的adapter
*/
MyBaseAdapter myBaseAdapter;
private GestureDetector mDetector;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myBaseAdapter = new MyBaseAdapter(this);
gestureListView = (ListView) this.findViewById(R.id.list1);
WebView webView = new WebView(this);
gestureListView.addHeaderView(webView);
gestureListView.setAdapter(myBaseAdapter);
gestureListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Log.i("isFling", "setOnItemClickListener");
if (!(isFling && System.currentTimeMillis() - startFlingTime < 300)) {
ToastUtil.shortToast(GestureTestActivity.this, "点击了item");
}
}
});
//创建手势监听器对象
mDetector = new GestureDetector(getApplicationContext(), new MyGestureListener());
}
//分发事件执行的入口,一定会首先执行
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
//开启手势结束的动作
mDetector.onTouchEvent(ev);//手势监听
//isFling = false;
Log.i("isFling", "dispatchTouchEvent");
return super.dispatchTouchEvent(ev);
}
boolean isFling = false;
long startFlingTime = 0;
//继承了简单的手势类
private class MyGestureListener extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
return super.onSingleTapConfirmed(e);
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
return super.onSingleTapUp(e);
}
//做手势判断
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
Log.i("isFling", "onFling");
if (e1 != null && e2 != null) {
//左滑动
if (e1.getX() - e2.getX() > 100 && Math.abs(e1.getY() - e2.getY()) < 100) {
ToastUtil.shortToast(GestureTestActivity.this, "向左");
isFling = true;
startFlingTime = System.currentTimeMillis();
return true;
}
//右滑动
else if (e1.getX() - e2.getX() < -100 && Math.abs(e1.getY() - e2.getY()) < 100) {
ToastUtil.shortToast(GestureTestActivity.this, "向右");
isFling = true;
startFlingTime = System.currentTimeMillis();
return true;
}
}
startFlingTime = System.currentTimeMillis();
isFling = false;
return super.onFling(e1, e2, velocityX, velocityY);
}
}
}
代码下载地址:http://download.youkuaiyun.com/detail/weimingchuan/9418143