【发布时间】:2012-03-27 16:46:56
【问题描述】:
可以这样做吗?我不擅长画东西,有一个非常基本的“点类”,它根据 x 和 y 绘制一个圆圈,但 cavas 位于 FrameLayout 中,大小约为我在屏幕上模拟的 3,7 的一半。不用说,我在 y 上只有大约 150 个,在 x 上只有 200 个(猜猜它的像素)。有没有办法缩放画布以绘制坐标?
最好将我的位置绘制在中心,而我的查看“范围”中的其他位置则根据我的位置绘制。
所以我基本上是在询问是否有办法将画布缩放到坐标并允许我指定该比例。所以如果我在 32.345 和 -212.988765 那是中心,我可以看到 10 公里范围内的其他位置或类似的东西。
我目前的 Dot 类:
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 但没有做任何事情。
【问题讨论】:
-
不,我不仅仅是一个纯黑色背景,我在上面画点代表人物
标签: android canvas gps coordinates