我有一个扩展了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,控制台,输出