簡體   English   中英

OSMDROID-longPressHelper僅在用於添加標記時才第一次觸發

[英]OSMDROID - longPressHelper only fires the first time when it is used to add a marker

我正在使用osmdroid並實現了MapEventsReceiver,MapEventsOverlay和LongPressHelper,以便在用戶按住地圖時添加新標記。 這是第一次和第一次。

如果我刪除addMarker(p); 然后從我的longPressHelper中啟動。

有誰知道為什么會這樣?

碼:

mapviewInit-在onCreate私有void mapviewInit()中調用{

    mapview = (MapView) findViewById(R.id.mapview);
    mapview.setTileSource(TileSourceFactory.MAPNIK);
    mapview.setBuiltInZoomControls(true);
    mapview.setMultiTouchControls(true);

    IMapController mapController = mapview.getController();
    mapController.setZoom(16);
    GeoPoint startPoint = new GeoPoint(48.8583, 2.2944);
    mapController.setCenter(startPoint);

    MapEventsReceiver meReceiver = new MapEventsReceiver() {

        @Override
        public boolean singleTapConfirmedHelper(GeoPoint p) {
            return false;
        }

        @Override
        public boolean longPressHelper(GeoPoint p) {

            Toast toast = Toast.makeText(getApplicationContext(), "DEBUGDEBUGDEBUG", Toast.LENGTH_LONG);
            toast.show();

            addMarker(p);



            return true;
        }
    };

addMarker-由LongPressHelper調用public void addMarker(GeoPoint geoPoint){

    Drawable dr = getResources().getDrawable(R.drawable.icn_crosshair_red);
    Bitmap bitmap = ((BitmapDrawable) dr).getBitmap();
    Drawable d = new BitmapDrawable(getResources(), Bitmap.createScaledBitmap(bitmap, 100, 100, true));

    mapview.getOverlays().clear();
    mapview.invalidate();

    selectedPosMarker = new Marker(mapview);
    selectedPosMarker.setPosition(geoPoint);

    selectedPosMarker.setInfoWindow(null);

    selectedPosMarker.setIcon(d);
    selectedPosMarker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM);


    mapview.getOverlays().add(selectedPosMarker);
    mapview.invalidate();
}

我假設您在未提供的部分代碼中添加了MapEventsOverlay。 問題是您在addMarker中將其刪除了!

mapview.getOverlays().clear();

所以當然不存在第二次對長按做出反應...

不要在同一方法中兩次調用mapview.invalidate(),這是無用且耗時的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM