2012-03-10 100 views
2

可以做到這一點嗎?我不擅長繪畫,有一個非常基本的「Dot類」,它繪製了一個基於x和y的圓,但是cavas在FrameLayout中,大小約爲我模擬屏幕3,7的一半。不用說,我只在y上獲得了大約150,在x上獲得了大約200(猜測它的像素)。有沒有辦法縮放畫布以繪製座標?Android根據gps座標在畫布上繪製點

最好是我的位置在中心繪製,我的查看中的其他位置「範圍」根據我的位置繪製。

所以即時通訊基本上問是否有一種方法來縮放畫布到座標,並允許我指定該比例。所以如果我在32.345和-212.988765這是中心,我可以看到其他位置說10公里範圍或類似的東西。

我目前的點類:

public class Dot extends View{ 
    private final float x; 
    private final float y; 
    private final int r = 5; 
    private final Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); 

    public Dot(Context context, float x, float y) { 
     super(context); 
     mPaint.setColor(0xFFFF0000); 
     this.x = x; 
     this.y = y; 
    } 

    @Override 
    protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 

     canvas.drawCircle(x, y, r, mPaint); 
    } 


} 

GPS的座標報告工作和繪畫工作,但只有當畫布的範圍內,它的現在。

爲了說清楚,我的應用程序中的所有內容都正常工作,正確的座標正在傳遞,我需要的最後一部分是一個可視化表示,我不知道如何讓畫布像地圖一樣工作。

編輯我的另一個問題是圖紙,當位置更新它肯定會重繪,但它附加了一個新的圓圈,而舊的圓圈仍然存在。我如何完全刷新它,以便圓圈「移動」而不是附加一個新的?我試圖在視圖上調用invalidate,但沒有做任何事情。

+0

你使用的是MapView嗎? – 2012-03-10 15:33:40

+0

不,我不只是一個簡單的黑色背景,在這個背景上我畫了代表人的點 – nejs 2012-03-10 16:33:42

回答