2012-01-13 89 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