2011-10-23 14 views
1

我試圖實現TouchPaint項目的一個版本,儘管它可以工作,但它不繪製垂直路徑,只繪製水平(和淺角度)。我正在使用一個SurfaceView和一個單獨的線程來繪製位圖。TouchEvent未捕獲垂直運動

這裏是我的TouchEvent:

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    float x = event.getX(); 
    float y = event.getY(); 

    switch(event.getAction()) { 
     case MotionEvent.ACTION_DOWN: 
      touch_down(x, y); 
      break; 
     case MotionEvent.ACTION_MOVE: 
      touch_move(x, y); 
      break; 
     case MotionEvent.ACTION_UP: 
      touch_up(x, y); 
      break; 
    } 

    //return super.onTouchEvent(event); 
    return true; 
} 

正如你所看到的,這是非常簡單的。我注意到(在調試時),當運動開始變得太陡峭時,觸摸事件停止運行。當運動是一條直線時,它只會在action_down上觸發一次。奇怪的!有沒有人遇到過這個問題?

編輯:我沒有提到SurfaceView是在一個LinearView裏面,這是一個ScrollView。我在想,ScrollView正在攔截垂直觸摸移動事件?

編輯2:它是SCROLLVIEW!好的,現在來研究一下這個問題的解決方法。我想紀念這個問題進行回答,但我不能在未來7小時這樣做...:d

+1

如果你還沒有找到它,這可能會有所幫助:http://stackoverflow.com/questions/2646028/android-horizo​​ntalscrollview-within-scrollview-touch-handling – goto10

+0

謝謝!這正是我需要的! –

回答