android之判断用户手势

来源:互联网 发布:docker容器连接数据库 编辑:程序博客网 时间:2024/05/21 10:23

android之判断用户手势

 

private GestureDetector gestureDetector;private Screen screen;gestureDetector = new GestureDetector(this,onGestureListener);        //得到屏幕的大小        screen = GestureUtils.getScreenPix(this);@Override    public boolean onTouchEvent(MotionEvent event) {        return gestureDetector.onTouchEvent(event);    }       GestureDetector.OnGestureListener onGestureListener = new GestureDetector.SimpleOnGestureListener(){    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {    float x = e2.getX() - e1.getX();            float y = e2.getY() - e1.getY();            //限制必须得划过屏幕的1/3才能算划过            float x_limit = screen.widthPixels / 3;            float y_limit = screen.heightPixels / 3;            float x_abs = Math.abs(x);            float y_abs = Math.abs(y);                        if(x_abs > y_abs || x_abs == y_abs){                //gesture left or right                if(x > x_limit || x < -x_limit){                    if(x>0){                        //right                    pre_img();//上一张图片                    }else if(x<0 || x==0){                        //left                    next_img();//下一张图片                    }                }            }else{                //gesture down or up                if(y > y_limit || y < -y_limit){                    if(y>0){                        //down                    }else if(y<0 || y==0){                        //up                    }                }            }return false;}    };


 

import android.content.Context;import android.util.DisplayMetrics;import android.view.WindowManager;/** * 手势判断 *  * @author Administrator *  */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;}@Overridepublic String toString() {return "(" + widthPixels + "," + heightPixels + ")";}}}


 

0 0
原创粉丝点击