Android - 使用MapOverlay轻扫/ Fling + MapView

时间:2012-03-14 21:41:39

标签: android google-maps position android-mapview swipe

我有一个Android应用程序,其活动在3个视图之间滑动(从左到右)。其中一个视图显示GoogleMaps。除此之外,我需要上下滚动(不是在地图中,而是在其他2个视图中)来显示所有内容。我有一些问题让应用程序理解滑动的手势,而不是在需要时滚动,但我在这里找到了一个很好的解决方案: http://www.jmstudio.org/archives/391

我现在的问题是在我的MapView中我想显示用户的位置。所以我实现了一个像这样的MapOverlay类:

受保护的类MyLocationOverlay扩展了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中实现了我的视图)。有什么问题以及如何解决?

提前谢谢!

0 个答案:

没有答案