我有一个扩展 Overlay 并实现 Overlay.Snappable 的类。我已经覆盖了它的绘制方法:
@Override
public void draw(Canvas canvas, MapView mv, boolean shadow)
{
Projection projection = mv.getProjection();
ArrayList<GeoPoint> geoPoints = new ArrayList<GeoPoint>();
//Creating geopoints - ommited for readability
Path p = new Path();
for (int i = 0; i < geoPoints.size(); i++) {
if (i == geoPoints.size() - 1) {
break;
}
Point from = new Point();
Point to = new Point();
projection.toPixels(geoPoints.get(i), from);
projection.toPixels(geoPoints.get(i + 1), to);
p.moveTo(from.x, from.y);
p.lineTo(to.x, to.y);
}
Paint mPaint = new Paint();
mPaint.setStyle(Style.FILL);
mPaint.setColor(0xFFFF0000);
mPaint.setAntiAlias(true);
canvas.drawPath(p, mPaint);
super.draw(canvas, mv, shadow);
}
正如你所看到的,我在地图上制作了一个点列表,我希望它们形成一个多边形。
现在,问题是当我将绘画样式设置为 FILL 或 FILL_AND_STROKE 时,屏幕上什么也没有显示,但是当我将它设置为只是描边并设置描边宽度时,它实际上会绘制它应该绘制的内容。
现在,我寻找解决方案,但没有任何结果。你能告诉我我是否错过了在代码本身中设置的内容,或者在 Overlay 画布上绘图时是否存在某种限制?
谢谢