Android - Проведите / Fling + MapView с MapOverlay - PullRequest
1 голос
/ 15 марта 2012

У меня есть приложение для Android с активностью, которая перелистывает (слева направо) между 3 представлениями.Одно из этих представлений отображает GoogleMaps.В дополнение к этому мне нужно иметь прокрутку вверх и вниз (не на карте, а в двух других видах), чтобы отобразить весь контент.У меня была некоторая проблема, чтобы приложение понимало жест смахивания, а не прокрутку, когда это необходимо, но я нашел здесь отличное решение: http://www.jmstudio.org/archives/391

Моя проблема в том, что в моем MapView я хочу показать положениепользователя.Поэтому я реализовал класс MapOverlay следующим образом:

защищенный класс MyLocationOverlay extends com.google.android.maps.Overlay {

        @Override
        public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) {
            Paint paint = new Paint();

            super.draw(canvas, mapView, shadow);
            // Converts lat/lng-Point to OUR coordinates on the screen.
            Point myScreenCoords = new Point();

            mapView.getProjection().toPixels(p, myScreenCoords);

            paint.setStrokeWidth(1);
            paint.setARGB(255, 255, 255, 255);
            paint.setStyle(Paint.Style.STROKE);

            Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.positiondot);

            canvas.drawBitmap(bmp, myScreenCoords.x, myScreenCoords.y, paint);
            return true;
        }
    }   

А затем из своей деятельности я вызываю

                     List<Overlay> mapOverlays;
                     MyLocationOverlay mapOverlay;
                     mapOverlays = mapView.getOverlays();
                     mapOverlay = new MyLocationOverlay();
                     mapOverlays.add(mapOverlay);

Это работает, но как только показывается положение, считывание не распознается.И если пользователь удаляет точку (нажатие кнопки mapOverlays.removeAll (mapOverlays); вызывается), то смахивание снова работает, но, конечно, позиция больше не отображается.Это похоже на то, что список почему-то отключает считывание.

Итак, я хочу, чтобы показанная позиция и смахивание работали одновременно.Мой код для смахивания более или менее тот, что в ссылке, которую я предоставил (только что реализовал мои представления в XML).Что не так и как исправить?

Заранее спасибо!

...