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
如果你還沒有找到它,這可能會有所幫助:http://stackoverflow.com/questions/2646028/android-horizontalscrollview-within-scrollview-touch-handling – goto10
謝謝!這正是我需要的! –