Ste*_*bbi 6 android google-maps-android-api-2
我正在将Android应用程序从Android google Maps API的版本1升级到版本2.在我的第1版代码中,我能够通过覆盖draw()方法直接在我的子类ItemizedOverlay中的地图上绘制文本,如下所示.我想要绘制的文本是动态的,我想在每个地图标记旁边显示一个附加文本项,因此在绘制/删除不同的符号时,将经常添加/删除文本.
@Override
public boolean draw(Canvas canvas, MapView mapView, boolean shadow,
long when) {
if (!shadow) {
canvas.drawText("some text", (float) point.x + TextOffsetX , (float) point.y + TextOffsetY, m_paint);
}
return super.draw(canvas, mapView, shadow, when);
}
Run Code Online (Sandbox Code Playgroud)
但是,在API的第2版中似乎不可能.这不是ItemizedOverlays的概念,也没有什么可以被子类化.有没有什么方法可以在新的API版本中在GoogleMap上绘制文字?
小智 5
我也遇到了同样的问题,正在尝试从 v1 升级到 v2。最后我使用了一个标记,用文本创建了一个位图,并将其用作标记的图标。
首先,您必须使用文本创建位图。注意:使用文本属性配置paintText(颜色、字体、文本对齐...)
Rect boundsText = new Rect();
paintText.getTextBounds(strText, 0, strText.length(), boundsText);
Bitmap.Config conf = Bitmap.Config.ARGB_8888;
Bitmap bmpText = Bitmap.createBitmap(boundsText.width(), boundsText.height(), conf);
Run Code Online (Sandbox Code Playgroud)
然后,使用 Canvas 绘制文本。用画布尺寸修复文本有点疯狂。
Canvas canvasText = new Canvas(bmpText);
canvasText.drawText(strText, canvasText.getWidth() / 2, canvasText.getHeight(), paintText);
Run Code Online (Sandbox Code Playgroud)
最后在MarkerOption中使用Bitmap创建图标
MarkerOptions markerOptions = new MarkerOptions()
.position(latlngMarker)
.icon(BitmapDescriptorFactory.fromBitmap(bmpText))
.anchor(0.5f, 1);
Run Code Online (Sandbox Code Playgroud)
希望它可以帮助你。
| 归档时间: |
|
| 查看次数: |
4608 次 |
| 最近记录: |