0

我创建了扩展 LinerLayout 的类并在视图上添加了许多元素,还使用 ​​etc canvas.drawCircle(100, 100, 10) 添加了圆,当我实现 onTouchEvent 时,我不确定如何仅重绘该元素(圆)。在“矩形”中设置哪些参数,以便我可以将其发送到无效(矩形)。

谢谢。

4

1 回答 1

2

对于具体示例,我认为此代码示例可以满足您的要求。我将您的坐标移动到变量(cx,cy,r)中只是为了清楚起见。根据您提到的内容,我认为您会在 LinearLayout 子类中调用它。

    int cx = 100;
    int cy = 100;
    int r = 10;

    canvas.DrawCircle( cx, cy, r );

    int l = cx - r - 1;
    int t = cy - r - 1;
    int r = cx + r + 1;
    int b = cy + r + 1;

    Rect bounds = new Rect(l, t, r, b);
    invalidate(bounds);

我在所有边上添加了一个额外的像素,只是为了与圆圈重叠一点,以确保整个区域无效。根据我的经验,您似乎可以包含负值或超出画布尺寸的值。

于 2011-08-17T18:07:47.680 回答