2012-01-13 70 views
1

我想在用户转向任何地方时动态绘制线条。我一直在努力研究如何在用户持续地聆听他的位置时使用用户的地理位置绘制线条。我试图使用moveTo和lineTo,但它只能用于一行。感谢您提前答复,谢谢。从实时跟踪地理位置动态绘制线条

更新:

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

图片:

线的划定跟进到哪里,用户将。 draw track

回答

0

您可以使用Path更具体地说:

private final Path mPath; 
................ 
mPath.lineTo(lastXCoord,lastYCoord); 
+0

先生,感谢你回答,你可以提供一个链接,相关的教程先生。我不会提出使此代码与我的需求相符的预先背景。我在上面添加了一个代码,并希望你能帮我修改它,其中我可以绘制不仅一条线,但用户位置将永远与它相同。 – rahstame 2012-01-14 14:41:55

+0

您应该将路径保留为上述代码片段暗示的实例字段。您不应该在每次调用draw()方法时创建它。在构造函数中创建它,只调用mPath.lineTo(...)和canvas.drawPath(mPath);在绘制方法中。您可以按照指向Path类的android文档的链接查看lineTo方法的确切功能。 – asenovm 2012-01-14 16:24:23

+0

好的,先生,我会尝试,如果我能做到这一点。现在对我来说有些模糊.. – rahstame 2012-01-14 21:58:41