Android双击事件(判断时间范围)

来源:互联网 发布:人工智能演讲 编辑:程序博客网 时间:2024/06/05 04:52
private PointF  first_1   = new PointF();private PointF  first_2   = new PointF();private boolean AREA      = false;private final int DOUBLETIME = 500;//msprivate final int DOUBLEAREA = 30;//dpcase MotionEvent.ACTION_DOWN:    if (!AREA){        first_1.set(motionEvent.getX(), motionEvent.getY());        AREA = true;    }else {        first_2.set(motionEvent.getX(), motionEvent.getY());        AREA = false;    }    break;case MotionEvent.ACTION_UP:    doubleClick(motionEvent);break;
public void doubleClick(MotionEvent motionEvent) {        System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1);        mHits[mHits.length - 1] = SystemClock.uptimeMillis();        //双击事件的时间间隔500ms        if (mHits[0] >= (SystemClock.uptimeMillis() - DOUBLETIME)) {            int xDiff;            int yDiff;            if (!AREA){                xDiff = (int) Math.abs(motionEvent.getX() - first_1.x);                yDiff = (int) Math.abs(motionEvent.getY() - first_1.y);            }else {                xDiff = (int) Math.abs(motionEvent.getX() - first_2.x);                yDiff = (int) Math.abs(motionEvent.getY() - first_2.y);            }            if (xDiff < DOUBLEAREA && yDiff < DOUBLEAREA){                //双击后具体的操作                            }        }    }

原创粉丝点击