我目前使用OSMdroid。
我希望能夠在地圖上標記(使用觸摸屏)某些點。
第一種選擇是使用長時間點擊。問題在於我的系統將滾動視爲長時間點擊。 第二個選項是使用雙選項卡。這具有改變縮放級別的效果。OSMdroid長按聽衆/雙擊
我希望能夠區分長點擊和滾動。有沒有簡單的方法來做到這一點?
下面有一些暗示link:
但是,我不確定這些建議是否可以用OSMdroid實現。
在此先感謝!
阿里爾
我目前使用OSMdroid。
我希望能夠在地圖上標記(使用觸摸屏)某些點。
第一種選擇是使用長時間點擊。問題在於我的系統將滾動視爲長時間點擊。 第二個選項是使用雙選項卡。這具有改變縮放級別的效果。OSMdroid長按聽衆/雙擊
我希望能夠區分長點擊和滾動。有沒有簡單的方法來做到這一點?
下面有一些暗示link:
但是,我不確定這些建議是否可以用OSMdroid實現。
在此先感謝!
阿里爾
當我想一些觸摸功能添加到OsmMap,我還發現,自來水和滾動等已經使用。
所以我讓我所有的手勢都需要用三根手指開始。手勢是用三根手指長按,然後向左或向右滑動,或者用三根手指長按然後飛起來。這樣我的手勢不會干擾任何正常的地圖手勢。
我的應用程序在檢測到三指longpress後也必須使用觸摸事件。否則,osm手勢和我的手勢會競爭導致奇怪的滾動和縮放。
這需要添加一個特殊Overlay
和這樣的代碼:
@Override
public boolean onTouchEvent(MotionEvent event, MapView mapView)
{
boolean detected = false;
if (myGestureDetector.onTouchEvent(event))
{
detected = true;
}
if (myGestureDetector.isTouchEventActive())
{
Log.d(D_LOG, "TOUCH EVENT ACTIVE DRAIN IT");
detected = true;
}
return detected;
}
注意,此方法只允許一個單一的觸摸事件。您的活動需要implements MapEventsReceiver
。
然後,您需要將MapEventsOverlay
添加到mapwith:
//Handling Map events
MapEventsOverlay mapEventsOverlay = new MapEventsOverlay(this, this);
map.getOverlays().add(0, mapEventsOverlay); //inserted at the "bottom" of all overlays
建議中的鏈接都不錯。我自己將onTouchListener直接指向mapView,並且只是覆蓋doubletap – Ifor 2012-08-07 07:53:59