0
我需要在MapView上有一個覆蓋圖,當用戶單擊覆蓋項目(小針)時,我會顯示一個氣球標註,但是當用戶在MapView上的其他位置單擊時,它將刪除覆蓋並添加一個新的覆蓋在接觸位置。我在MapView上設置了OnTouchListener,因此我可以檢測到觸摸,但是如何區分疊加層上的觸摸和觸摸?如何區分MapView及其疊加層上的觸摸?
謝謝!
我需要在MapView上有一個覆蓋圖,當用戶單擊覆蓋項目(小針)時,我會顯示一個氣球標註,但是當用戶在MapView上的其他位置單擊時,它將刪除覆蓋並添加一個新的覆蓋在接觸位置。我在MapView上設置了OnTouchListener,因此我可以檢測到觸摸,但是如何區分疊加層上的觸摸和觸摸?如何區分MapView及其疊加層上的觸摸?
謝謝!
那麼,我建議你使用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()方法來繪製氣球。
所以,你想彈出應該被刪除點擊外彈出?? ?? – Sujit
是的,另外,我希望能夠拖動覆蓋層,謝謝! – hzxu