android 上下左右手势判断 根据别人的改的
2014-11-18 12:10
316 查看
http://www.cnblogs.com/meieiem/archive/2011/09/16/2178313.html
GestureUtils.java
BuileGestureExt.java
demo
GestureUtils.java
package com.gesture; import android.content.Context; import android.util.DisplayMetrics; import android.view.WindowManager; public class GestureUtils { //获取屏幕的大小 public static Screen getScreenPix(Context context) { DisplayMetrics dm = new DisplayMetrics(); WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); windowManager.getDefaultDisplay().getMetrics(dm); return new Screen(dm.widthPixels,dm.heightPixels); } public static class Screen{ public int widthPixels; public int heightPixels; public Screen(){ } public Screen(int widthPixels,int heightPixels){ this.widthPixels=widthPixels; this.heightPixels=heightPixels; } @Override public String toString() { return "("+widthPixels+","+heightPixels+")"; } } }
BuileGestureExt.java
package com.gesture; import com.gesture.GestureUtils.Screen; import android.content.Context; import android.view.GestureDetector; import android.view.MotionEvent; public class BuileGestureExt { public static final int GESTURE_UP=0; public static final int GESTURE_DOWN=1; public static final int GESTURE_LEFT=2; public static final int GESTURE_RIGHT=3; private OnGestureResult onGestureResult; private Context mContext; public BuileGestureExt(Context c,OnGestureResult onGestureResult) { this.mContext=c; this.onGestureResult=onGestureResult; screen = GestureUtils.getScreenPix(c); } public GestureDetector Buile() { return new GestureDetector(mContext, onGestureListener); } private Screen screen; private GestureDetector.OnGestureListener onGestureListener = new GestureDetector.SimpleOnGestureListener(){ @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { float x = e2.getX() - e1.getX(); float y = e2.getY() - e1.getY(); //限制必须得划过屏幕的1/4才能算划过 float x_limit = screen.widthPixels / 4; float y_limit = screen.heightPixels / 4; float x_abs = Math.abs(x); float y_abs = Math.abs(y); if(x_abs >= y_abs){ //gesture left or right if(x > x_limit || x < -x_limit){ if(x>0){ //right doResult(GESTURE_RIGHT); }else if(x<=0){ //left doResult(GESTURE_LEFT); } } }else{ //gesture down or up if(y > y_limit || y < -y_limit){ if(y>0){ //down doResult(GESTURE_DOWN); }else if(y<=0){ //up doResult(GESTURE_UP); } } } return true; } }; public void doResult(int result) { if(onGestureResult!=null) { onGestureResult.onGestureResult(result); } } public interface OnGestureResult { public void onGestureResult(int direction); } }
demo
相关文章推荐
- android 上下左右手势判断 根据别人的改的
- android 上下左右手势判断 根据别人的改的
- android 上下左右手势判断 根据别人的改的
- android 上下左右手势判断 根据别人的改的
- android 上下左右手势判断 根据别人的改的
- android 判断左右滑动,上下滑动的GestureDetector简单手势检测
- android左右上下手势判断
- android 上下左右手势判断
- android 上下左右手势判断
- android 简单的 左右上下手势 判断
- android 上下左右手势判断
- Android手势识别——上下左右滑动、屏幕上下左右中区域处理
- Android上下左右手势滑动事件处理
- Android手势识别——上下左右滑动、屏幕上下左右中区域处理
- GestureDetector和onTouchEvent判断手势方向(上下左右)
- symbian 基本触摸动作的使用(判断上下,左右等手势)
- Unity3D脚本:快速判断手势是上下左右
- jquery 判断手势滑动方向(上下左右)
- Android开发ScrollView上下左右滑动事件冲突整理一(根据事件)
- iphone上下左右手势判断代码