我正在尝试在叠加图片旁边添加文字标签。到目前为止,我能看到的唯一方法是使用draw方法并将文本绘制为叠加层。我这样做了,但不知怎的,它没有向我显示绘制的文字。我的代码如下:
SitesOverlay that extends ItemizedOverlay<OverlayItem>
public void draw(Canvas canvas, MapView mapView,boolean shadow) {
int i;
Paint paint=new Paint();
paint.setStrokeWidth(1);
paint.setARGB(255, 255, 255, 255);
paint.setStyle(Paint.Style.STROKE);
super.draw(canvas, mapView, shadow);
boundCenterBottom(station);
canvas.drawText("hullo",28632877,77219722, paint);
}
SitesOverlay类中的构造函数只是将图像添加到许多不同的GeoPoints中。 现在,在我的OnCreate中,我有这段代码:
map.getOverlays().add(new SitesOverlay(station));
这是在我的构造函数中添加图像列表 - SitesOverlay(station)作为叠加层 我的问题是,由于我在SitesOverlay类的Draw方法中添加了我的文本,而不是在这个构造函数中,这就是为什么文本没有在地图上绘制的原因?如果是这样,我如何将文本添加到地图?
draw()
方法中绘制的内容会自动添加为叠加层吗?因为我认为这就是造成这个问题的原因......
我还可以在叠加图像旁边添加文字标签吗?
Plz帮助...
答案 0 :(得分:0)
试试这个..
MyLocationOverlay myTouchOverlay = new MyLocationOverlay ();
List<Overlay> list1 = myMapView.getOverlays();
list1.add(myTouchOverlay);
class MyLocationOverlay extends com.google.android.maps.Overlay {
@Override
public boolean onTap(GeoPoint p, MapView mapView) {
}
@Override
public boolean draw(Canvas canvas, MapView mapView, boolean shadow,
long when) {
super.draw(canvas, mapView, shadow);
Paint paint = new Paint();
// Converts lat/lng-Point to OUR coordinates on the screen.
Point myScreenCoords = new Point();
mapView.getProjection().toPixels(point, myScreenCoords);
paint.setStrokeWidth(1);
paint.setARGB(255, 255, 255, 255);
paint.setStyle(Paint.Style.STROKE);
paint.setTextSize(20);
paint.setColor(Color.RED);
paint.setStrokeWidth(2);
canvas.drawText("Here I am...", myScreenCoords.x-10,myScreenCoords.y-48, paint);
return true;
}
}