3

在此处输入图像描述

我需要显示我在地图上绘制的图钉内的文本我如何在 android 中实现它任何想法请为此提供任何建议。为了绘制图钉,我使用了 MyItemized 覆盖类。下面是我班级的代码..

public class MyItemizedOverlay extends ItemizedOverlay<OverlayItem> {

    private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();

    public MyItemizedOverlay(Drawable defaultMarker, Context ctx) {
        super(boundCenterBottom(defaultMarker));

    }

    public void addOverlay(OverlayItem overlay) {
        mOverlays.add(overlay);
        populate();
    }

    public void clear() {

        mOverlays.clear();
        populate();
    }

    @Override
    protected OverlayItem createItem(int i) {
        return mOverlays.get(i);
    }

    @Override
    public int size() {
        return mOverlays.size();
    }

    @Override
    protected boolean onTap(int index) {
        return true;
    }

    @Override
    public boolean onTouchEvent(MotionEvent event, MapView mapView) {

        return false;
    }

    @Override
    public void draw(Canvas canvas, MapView mapView, boolean shadow) {
        if (!shadow) {
            super.draw(canvas, mapView, false);
        }
    }

}

谢谢..

4

2 回答 2

2

做这样的事情并根据您的方便调整文本的位置和大小

public void draw(Canvas canvas, MapView mapView, boolean shadow) 
{

super.draw(canvas, mapView, shadow);
    int n = size();
    Projection proj = mapView.getProjection();
    Point out;
    Paint paint = new Paint();
    paint.setTextSize(20);
    paint.setColor(Color.BLACK);
    for (int i = 0; i < n; i++) 
    {
    GeoPoint geoPoint = mOverlays.get(i).getPoint();
    out = new Point();
        proj.toPixels(geoPoint, out);
    canvas.drawText("" + i, out.x, out.y, paint);
    }
}
于 2012-10-15T10:35:49.173 回答
0

您需要为每个“ItemizedOverlay”提供不同的可绘制对象。

或者覆盖那个'ItemizedOverlay's'绘图方法并在drawable上绘制数字?

对于逐项叠加的动态绘图,请遵循教程。即使它是一个气球标注,您也可以对其进行自定义以使其适合您。

于 2012-10-15T07:44:50.753 回答