7

我的视图中有一些方法可以修改调用时绘制的一些形状。在 Java 中,为了确保组件已更新,我会调用repaint(). 有什么东西可以确保我的视图正确更新吗?

我在某处读到,调用invalidate()onDraw()方法可以使事情保持最新,因此我不需要repaint()在我的方法中使用类似的东西来修改绘制的形状。

这是正确的,还是我还有其他事情要做?

编辑

要添加一个示例,我在视图中调用的方法是:

public void setLineThickness(int thickness) {
    aLineThickness = thickness;

    if(aLineThicness > 1)
        //repaint();      - Okay in Java but not in Android

}
4

1 回答 1

16

调用invalidate()将告诉视图它需要在未来某个时候重绘自身(调用 onDraw)。因此,如果您更改视图中的某些内容,例如线条粗细,请在其后调用 invalidate()。这样你就知道你的视图最终会被更新。

你所有的绘图代码都应该在 onDraw() 中实现,而你的其他方法应该只是改变你的视图的状态,然后在你调用 invalidate() 之后,它会被用来绘制它。

于 2011-07-20T01:23:42.690 回答