我在地理位置之间画了一条线。它成功地画了。当我们看到地图时,当下一次拉伸时,画线看起来像是像素化的。如何合并这条线?
我的代码在这里,
@Override
public void draw(Canvas canvas, MapView mapview, boolean shadow) {
super.draw(canvas, mapview, shadow);
if(! routeIsActive) return;
mapview.getProjection().toPixels(locpoint, pp); // Converts GeoPoint to screen pixels
int xoff = 0;
int yoff = 0;
int oldx = pp.x;
int oldy = pp.y;
int newx = oldx + xoff;
int newy = oldy + yoff;
paint.setAntiAlias(true);
paint.setDither(true);
paint.setStrokeWidth(7);
for(int i=0; i<numberRoutePoints-1; i++)
{
switch(routeMode.get(i))
{
case 0:
paint.setColor(Color.parseColor("#666666"));
break;
case 1:
paint.setColor(Color.parseColor("#0EA7D6"));
break;
case 2:
paint.setColor(Color.parseColor("#654321"));
break;
case 3:
paint.setColor(Color.parseColor("#123456"));
break;
}
mapview.getProjection().toPixels(routePoints.get(i), pold);
oldx = pold.x;
oldy = pold.y;
mapview.getProjection().toPixels(routePoints.get(i+1), pnew);
newx = pnew.x;
newy = pnew.y;
canvas.drawLine(oldx, oldy, newx, newy, paint);
}
}
答案 0 :(得分:3)
您应该像这样更改绘画对象的样式:
paint.setStrokeCap(Cap.ROUND);
答案 1 :(得分:2)
如果你在每一行的开头和结尾绘制一个圆(圆的直径必须是线高),我认为它可以做到这一点,或者画布的drawRoundRect可以做得很好< / p>