2012-07-27 20 views
6

He dibujado una línea entre los puntos geográficos. está dibujado con éxito. cuando vemos el mapa, el drawline se ve como pixelado cuando es adjective de la siguiente drawling. cómo fusionar la línea?Dibujar línea suave entre geopoints en Android

enter image description here

Mi código está aquí,

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

} 

Respuesta

3

debe cambiar el estilo de la pintura objeto de esta manera:

paint.setStrokeCap(Cap.ROUND); 
+0

Hola @AndyRes. gracias amigo está funcionando bien. – RVG

2

Si dibuja un círculo en el principio y el final de cada línea (el diámetro del círculo debe ser la altura de la línea), creo que lo hará el truco o tal vez drawRoundRect de la tela puede hacerlo bien