0

我知道如何在画布上绘制路径并了解如何撤消/重做。但现在我想绘制形状(线条、圆形、矩形),这些形状会根据我拖动它们的方式动态调整大小——就像我们在 MS Paint 中所做的那样。

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

一直在寻找这个,但还没有遇到过如何做到这一点。也许我使用了错误的关键字,但我不知道。任何指针?

4

2 回答 2

0

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

于 2012-07-14T03:47:20.870 回答
0

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

public void invalidate () 自:API 级别 1

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

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

于 2012-07-12T21:58:29.690 回答