0

我有一个列表视图,它由两个文本视图和一个图像视图组成。在布局的顶部(列表视图上方),我有一个按钮来显示地图中的所有列表以及相应的图像视图和文本视图。如何在 mapview 中叠加 imageview ..?

注意:我在 res - drawable 中没有任何图像。我只有图片网址。

我可以固定相应的位置..!但我不知道如何使用 imageview 为那个特定的 baloon(pin) 添加叠加层。

此外,我必须在地图视图中从当前的纬度和经度绘制一个 2 公里的透明圆圈。是否可以在地图视图中画一个圆圈..?

帮助我实现上述目标。

以下是我用来显示地图别针的代码:

    Double lat1 = (Double.parseDouble(latitude)) * 1E6;
    Double lng1 = (Double.parseDouble(longitude)) * 1E6;

    com.google.android.maps.GeoPoint point = new com.google.android.maps.GeoPoint(
            lat1.intValue(), lng1.intValue());
    controller.animateTo(point);
    controller.setZoom(10);

    mapOverlays = mapView.getOverlays();
    drawable = this.getResources().getDrawable(R.drawable.pin);
    balloon1 = new MyItemizedOverlay_Initial(drawable, mapView);
4

1 回答 1

0

您应该扩展 com.google.android.maps.Overlay 以将图像添加到 mapView。然后覆盖draw方法。因此,您可以获取 URI 添加位图并在画布中绘制它。将下面的代码放在draw方法中。

@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
    super.draw(canvas, mapView, shadow);
    try {
        URL url = new URL("http://your.url.com/your-file.jpg");
        Bitmap bitmap = BitmapFactory.decodeStream(url.openStream());
        canvas.drawBitmap(bitmap, point.x - bitmap.getWidth() / 2, point.y - bitmap.getHeight() / 2, null);
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
于 2012-08-21T00:48:48.057 回答