手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >Android手势识别简单封装类
Android手势识别简单封装类
摘要:在做一个项目时用到了简单的手势功能(向左,向右滑切屏),于是简单地封装了下importandroid.content.Context;imp...

在做一个项目时用到了简单的手势功能(向左,向右滑切屏),于是简单地封装了下

import android.content.Context;

import android.util.DisplayMetrics;

import android.view.GestureDetector;

import android.view.GestureDetector.OnGestureListener;

import android.view.MotionEvent;

public class GestureHelper implements OnGestureListener {

private GestureDetector gesture_detector;

private int screen_width;

private OnFlingListener listener_onfling;

public static abstract class OnFlingListener {

public abstract void OnFlingLeft();

public abstract void OnFlingRight();

}

public GestureHelper(Context context) {

DisplayMetrics dm = context.getResources().getDisplayMetrics();

screen_width = dm.widthPixels;

gesture_detector = new GestureDetector(context, this);

}

public void setOnFlingListener(OnFlingListener listener) {

listener_onfling = listener;

}

public boolean onTouchEvent(MotionEvent event) {

return gesture_detector.onTouchEvent(event);

}

@Override

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

// 触发条件 :

// X轴的坐标位移大于FLING_MIN_DISTANCE,且移动速度大于FLING_MIN_VELOCITY个像素/秒

final int FLING_MIN_DISTANCE = (int) (screen_width / 3.0f), FLING_MIN_VELOCITY = 200;

if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE && Math.abs(velocityX) > FLING_MIN_VELOCITY) {

listener_onfling.OnFlingLeft();

} else if (e2.getX() - e1.getX() > FLING_MIN_DISTANCE && Math.abs(velocityX) > FLING_MIN_VELOCITY) {

listener_onfling.OnFlingRight();

}

return true;

}

@Override

public boolean onDown(MotionEvent e) {

return false;

}

@Override

public void onLongPress(MotionEvent e) {

}

@Override

public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,

float distanceY) {

return false;

}

@Override

public void onShowPress(MotionEvent e) {

}

@Override

public boolean onSingleTapUp(MotionEvent e) {

return false;

}

}

使用方法如下:

public class TestActivity extends Activity {

private GestureHelper gh;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(yout.activity_start);

gh = new GestureHelper(this);

gh.setOnFlingListener(new OnFlingListener() {

@Override

public void OnFlingLeft() {

//向左滑动

}

@Override

public void OnFlingRight() {

//向右滑动

}

});

}

@Override

public boolean onTouchEvent(MotionEvent event) {

return gh.onTouchEvent(event);

}

}

【Android手势识别简单封装类】相关文章:

Android获得可用内存大小

Android开发笔记之:复写按钮方法

android底部菜单栏实现原理与代码

Android 异步加载图片的实例代码

Android UI开发专题(一) 之界面设计

Android 软件自动更新功能实现的方法

Android授权访问网页

android图像绘制(二)画布上放大缩小问题

Android之网络通信案例分析

Android列表对话框和进度对话框

精品推荐
分类导航