android 绘制路径,Android-绘制路径作为MapView上的叠加层

在自定义的Overlay类中,作者尝试通过重写draw方法来绘制地图上的多边形。当设置Paint的样式为FILL或FILL_AND_STROKE时,多边形没有显示,但设置为STROKE并指定笔触宽度时,路径能够正确显示。问题在于填充多边形的功能不工作。可能的原因包括路径构造错误、坐标转换问题或画布填充设置等。寻求解决方案。
摘要由CSDN通过智能技术生成

我有一个扩展了Overlay和implemments Overlay.Snappable的类。我已经重写了它的 draw 方法:

@Override

public void draw(Canvas canvas, MapView mv, boolean shadow)

{

Projection projection = mv.getProjection();

ArrayList geoPoints = new ArrayList();

//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时,屏幕上什么都没有显示,但是当我将其设置为仅笔触并设置了笔触宽度时,它会准确地绘制应该绘制的内容。

现在,我正在寻找解决方案,但没有任何反应。您能告诉我是否需要在代码本身中设置一些内容,或者在覆盖画布上绘制时是否存在某种约束?

谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值