可以做到这一点吗?我不擅长绘画,有一个非常基本的“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,但没有做任何事情。
你使用的是MapView吗? – 2012-03-10 15:33:40
不,我不只是一个简单的黑色背景,在这个背景上我画了代表人的点 – nejs 2012-03-10 16:33:42