Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android上的地质点之间绘制平滑线_Android_Google Maps_Draw - Fatal编程技术网

在android上的地质点之间绘制平滑线

在android上的地质点之间绘制平滑线,android,google-maps,draw,Android,Google Maps,Draw,我画了两个地质点之间的线。它被成功地画出来了。当我们看到地图时,当下一条绘制线相邻时,绘制线看起来像是像素化的。如何合并该行 我的代码在这里 @Override public void draw(Canvas canvas, MapView mapview, boolean shadow) { super.draw(canvas, mapview, shadow); if(! routeIsActive) return; mapview.getProjection()

我画了两个地质点之间的线。它被成功地画出来了。当我们看到地图时,当下一条绘制线相邻时,绘制线看起来像是像素化的。如何合并该行

我的代码在这里

@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);
    }

}
@覆盖
公共空白绘制(画布、地图视图、地图视图、布尔阴影){
super.draw(画布、地图视图、阴影);
如果(!routeIsActive)返回;
mapview.getProjection().toPixels(locpoint,pp);//将地理点转换为屏幕像素
int-xoff=0;
int-yoff=0;
int oldx=pp.x;
int oldy=pp.y;
int newx=oldx+xoff;
int newy=oldy+yoff;
paint.setAntiAlias(真);
绘制。设置抖动(真);
油漆。设置行程宽度(7);

对于(int i=0;i如果在每行的开始和结束处绘制一个圆(圆的直径必须是线的高度),我认为这会起到作用,或者画布的效果会很好

您应该像这样更改绘制对象的样式:

paint.setStrokeCap(Cap.ROUND);