当前位置: 首页 > 面试题库 >

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

井洲
2023-03-14
问题内容

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

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

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

谢谢


问题答案:

一些东西。您应该p.moveTo(from.x, from.y);只使用一次,即第一次使用时第一次使用。

尝试使用此方法设置paint用于绘制多边形的对象的属性。

polygonPaint = new Paint();
polygonPaint.setStrokeWidth(2); 
polygonPaint.setStyle(Paint.Style.STROKE);
polygonPaint.setAntiAlias(true);

希望这可以帮助。



 类似资料:
  • 下面的问题有人给我提示吗? 我想画一个填充的路径(画布),其中有一个洞。在SVG中,路径定义如下:

  • 2D 绘制上下文支持很多在画布上绘制路径的方法。通过路径可以创造出复杂的形状和线条。要绘制路径,首先必须调用beginPath()方法,表示要开始绘制新路径。然后,再通过调用下列方法来实际地绘制路径。 arc(x, y, radius, startAngle, endAngle, counterclockwise):以(x,y)为圆心绘制一条弧线,弧线半径为radius,起始和结束角度(用弧度表示

  • 如果我做错了什么,有人能告诉我吗?提前谢了。

  • 问题内容: 有没有办法总是在任何android应用程序顶部绘制覆盖窗口? 我正在使用Android x86端口并具有系统权限。 @Edit:叠加层下方的视图应接收所有事件。 问题答案: 可以通过创建一个在当前视图中添加视图的方法来做到这一点: 但是您需要以下额外权限: 然后只需在清单中注册服务: 并启动它:

  • 问题内容: 我想只使用具有svg / canvas和jsmax的css来动画化线条的渐进绘图。我想画的线的想法可以在这里找到 问题答案: 此答案中列出了三种技术: 有一个全SVG解决方案,涉及逐步修改形状以绘制越来越长的“破折号”,然后是巨大的空白。 演示:[http](http://phrogz.net/svg/progressively-drawing-svg-path-via- dashar

  • 我想在HTML5画布/或SVG上执行以下操作: 有一个背景路径,将光标移过去并绘制(填充)背景路径 用户完成绘图后有回调函数 我的问题是,我不知道如何检查抽屉线是否遵循路径。 有人能给我解释一下如何做到这一点,或者给我一些建议吗? http://jsbin.com/reguyuxawo/edit?html,js,控制台,输出