android 自定义View实现长按事件

小菜鸟战斗机 2018-3-27 181

最近开发一个股票交易的App,涉及到长按走势图出现十字线的效果,实现原理:重写onTouch事件,在actionDown里面记录当前的downTime时间,在Action_move里面记录当前的eventTime时间,如果eventTime-downTIme大于1000,则视为一次长按事件:核心代码如下:

public boolean onTouchEvent(MotionEvent event) {    if(event.getAction()==MotionEvent.ACTION_DOWN){
        Log.e("actionDown","进入了x="+x+" y="+y);        x= event.getX();        y=event.getY();        downTime=event.getDownTime();
    }else if (event.getAction()==MotionEvent.ACTION_MOVE){        x=event.getX();        y=event.getY();        if(event.getEventTime()-downTime>1000){
            Log.e("action move", "可以画十字线了");
            postInvalidate();
        }

    }else if(event.getAction()==MotionEvent.ACTION_UP){        long time=event.getEventTime();
        Log.e("event actionUp",time+" downTime="+event.getDownTime());
    }    return true;
}


最新回复 (0)
返回