Я переопределяю onTouchEvent () для моего SurfaceView. Всякий раз, когда я касаюсь экрана телефона, он должен печатать координаты сенсорных событий. Это мой код:
public class MyGestureActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i(TAG, "onCreate()");
panel = new MyGesturePanel(this);
setContentView(panel);
}
}
public class MyGesturePanel extends SurfaceView implements SurfaceHolder.Callback {
public boolean onTouchEvent(MotionEvent event) {
Log.i(TAG, "onTouchEvent! " + event.getX() + " " + event.getY());
return super.onTouchEvent(event);
}
}
Если я вернул super.onTouchEvent (событие), он напечатает только 1 событие (ACTION_DOWN), даже если я не отпустил палец на экране. Я также попытался напечатать то, что было возвращено, и оно вернуло false.
Теперь вместо использования super.onTouchEvent (событие) я вернул true. Когда я устанавливаю возвращаемое значение в true, он работает нормально. Когда я держу палец на экране, он печатает множество событий ACTION_MOVE. (хотя я не двигаю пальцем)
Почему это? Я делаю что-то неправильно? Желательно ли просто «жестко закодировать» возврат к true?
Спасибо!