绘制一个跟踪我手指的形状

时间:2012-07-12 20:56:55

标签: android drawing android-canvas

我知道如何在画布上绘制路径并了解如何撤消/重做。但是现在我想绘制动态调整大小的形状(线条,圆形,矩形),这取决于我如何拖动它们 - 就像我们在MS Paint中一样。

如果我使用“drawLine”,则该行永久存在,无法将其擦除并重新绘制到我的新手指位置。与圆相同,因为我希望圆圈在我拖动手指时不断改变宽度。因此,旧的必须擦除(保持位图上的所有其他路径完整)并在其位置绘制新的路径。

为此寻找了很多,但没有遇到过如何做到这一点。也许我使用了错误的关键字,但我不知道。有什么指针吗?

2 个答案:

答案 0 :(得分:0)

每次移动手指,调用底层视图的invalidate()函数,都会触发擦除整个背景

public void invalidate() 自:API Level 1

使整个视图无效。如果视图可见,将在某个时间点调用onDraw(android.graphics.Canvas)。必须从UI线程调用此方法。要从非UI线程调用,请调用postInvalidate()。

然后根据手指的新位置重新绘制形状。

答案 1 :(得分:0)

管理这样做。我误解了屏幕外绘图的工作方式。我们的想法是只在你拥有你想要的形状后才能写入位图 - 即“修饰”。然后,使用Draw ...中的“canvas”对象绘制形状