Как различить прикосновения к MapView и его наложению? - PullRequest
0 голосов
/ 22 июня 2011

Мне нужно иметь одно наложение на MapView, когда пользователь щелкает элемент наложения (маленький значок), я показываю выноску, но когда пользователь нажимает на другие места в MapView, он удаляет наложение и добавляет новыйодин в позиции касания.Я установил OnTouchListener на MapView, чтобы я мог обнаруживать касания, но как мне отличить касание от касания на оверлее?

Спасибо!

1 Ответ

2 голосов
/ 23 июля 2011

Хорошо, я предлагаю вам использовать метод onTap (int index), но он срабатывает только тогда, когда пользователь нажимает на OverlayItem.Итак, в вашем случае вы должны объединить методы onTap () и onTouchEvent (), например:

@Override 
protected boolean onTap(int index) { 
    selectedItem = items.get(index);
    Toast.makeText(context, "BooM!",
                Toast.LENGTH_SHORT).show();
    return true;
}

@Override
public boolean onTouchEvent(MotionEvent event, MapView mapView) {
    selectedItem = null;
    return false;
}

Вы можете увидеть с помощью отладчика, что если вы нажмете свой элемент - вы находитесь в onTap ()если нет - вы находитесь в onTouchEvent ().И, конечно, вы должны переопределить метод onDraw (), чтобы нарисовать свой воздушный шар.

...