У меня есть простой детектор жестов, которому передаются все MotionEvents в моем методе Views onTouchEvent (), согласно этому учебному пособию:
http://android -developers.blogspot.com / 2010/06 / верстка чувственных из-multitouch.html
Пример моего кода, который рисует круг вокруг пальца при касании экрана:
@Override
public boolean onTouchEvent(MotionEvent ev) {
// send the touch event to the gesture detector
if (mBuildupDetector.onTouchEvent(ev)) {
Log.d(LOG_TAG, "onTouchEvent(): Gesture consumed.");
} else {
Log.d(LOG_TAG, "onTouchEvent(): Gesture not consumed.");
}
switch (curAction) {
case MotionEvent.ACTION_DOWN: {
drawCircle();
}
}
}
А затем частный подкласс для детектора жестов:
private class BuildupListener extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onDown(MotionEvent ev) {
Log.d("BuildupListener", "onDown(): Triggered.");
return true;
}
}
Итак, когда пользователь касается экрана, генерируя событие движения, я получаю представление о том, что жест действительно «использовался», и я могу изменить диаметр круга в методе onDown объекта GestureDectector. Тем не менее, запись в журнал не производится из onDown, даже если она вызывается и выполняется.
Я что-то упускаю из-за регистрации и как регистрация может происходить внутри частных подклассов или детекторов жестов?
Спасибо
Пол