0

我想在 Android 中的 Google Maps MapView 上方的图层上画一个圆圈。我的意思是 - 地图视图的中心有一个红色圆圈,但无论我移动我的地图 - 这个圆圈应该始终位于我的视图中心 - 类似于地图视图上方的一层。

你能告诉我怎么做吗?

谢谢!

4

3 回答 3

2

使用 a FrameLayout,它的第一个孩子将是MapView,第二个孩子将是你的圈子(with Gravity= CENTER)。

于 2012-10-02T08:59:36.247 回答
0

为什么不使用简单的覆盖?就像是:

public class MapDemo extends MapActivity  { 
    MapView mMapView;
    CircleOverlay mCOverlay;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        GeoPoint mapCentrePoint = new GeoPoint(51500000, 0);
        mMapView = (MapView) findViewById(R.id.mapview);
        MapController mapCtrlr = mMapView.getController();
        mapCtrlr.setZoom(8);
        mapCtrlr.setCenter(mapCentrePoint);
        List<Overlay> listOfOverlays = mMapView.getOverlays();
        mCOverlay = new CircleOverlay(50.0f);
        listOfOverlays.add(mCOverlay);
    }

    @Override
    protected boolean isRouteDisplayed() {return false;}

    public class CircleOverlay extends com.google.android.maps.Overlay {
        Paint mPaint;
        float mRadius;
        public CircleOverlay(float radius) {
            super();
            mRadius = radius;
            mPaint = new Paint();
            mPaint.setColor(Color.RED);
            mPaint.setStyle(Style.STROKE);
            mPaint.setStrokeWidth(2);
        }
        @Override
        public boolean draw(Canvas canvas, MapView mv, boolean shadow,
                long when) {
            canvas.drawCircle(mv.getWidth()/2, mv.getHeight()/2, 
                    mRadius, mPaint);
            return false;
        }
    }
}

.

于 2012-10-02T10:25:52.180 回答
-1

使用surfaceview http://developer.android.com/reference/android/view/SurfaceView.html或FrameLayout http://developer.android.com/reference/android/widget/FrameLayout.html怎么样?

于 2012-10-02T07:50:38.090 回答