我想在Android上的Google Maps MapView上面的图层上绘制一个圆圈。 我的意思是 - 在mapview的中心有一个红色圆圈,但无论我在哪里移动我的地图 - 这个圆圈应该始终位于我视图的中心 - 就像mapview上面的一层。
你能告诉我怎么做吗?
谢谢!
答案 0 :(得分:2)
使用FrameLayout
,其第一个孩子将是MapView
,其第二个孩子将成为您的圈子(Gravity
= CENTER)。
答案 1 :(得分: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;
}
}
}
答案 2 :(得分:-1)