Android - 重绘画布

时间:2014-06-16 14:06:00

标签: android canvas

我有 3 ImageViews。 第一第二 已连接,红色。我也有简单的按钮。这是一张图片:

enter image description here

我想连接 第二&当我点击我的按钮时,第3个带有新路径线的图像视图会更改第一行颜色(例如更改为绿色)。以下是我的代码的一部分:

public class SkillPath extends View {
Paint paint;
Path path;

... constructors


@Override
protected void onDraw(Canvas canvas) {
    addPath (canvas);       
}

//Here is my RED line
void addPath (Canvas canvas){
    paint.setAntiAlias(true);
    paint.setColor(Color.RED);
    paint.setStrokeWidth(3);

    path.moveTo(110, 110);
    path.lineTo(210, 110);

    canvas.drawPath(path, paint);
    Log.d ("Page 2","onDraw");
}

我可以获取所有视图的所有坐标,但如何重绘现有画布?我怀疑,我需要使用 invalidate(),但我不知道这样做。需要帮助。

1 个答案:

答案 0 :(得分:2)

invalidate()方法强制重新绘制View

因此,只需在画布上应用所需的修改,并在这些修改后在相关的invalidate()上调用View