android 自定義View實現長按事件

最近開發一個股票交易的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;
}



發佈了39 篇原創文章 · 獲贊 6 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章