android如何调用invalidate(Rect)

时间:2011-08-17 17:55:36

标签: android invalidation

我创建了扩展LinerLayout的类并在视图上添加了许多元素,我也添加了一个圆圈 等canvas.drawCircle(100,100,10),当我实现onTouchEvent时,我不知道如何仅重绘该元素(圆圈)。在“Rect”中设置哪些参数,以便将其发送到invalidate(Rect)。

感谢。

1 个答案:

答案 0 :(得分: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);

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