如何修改Android视图?

时间:2011-07-20 00:35:00

标签: android repaint invalidation ondraw

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

我曾在某处阅读invalidate()方法中调用onDraw()会使事情保持最新,因此我不需要在我的方法中修改repaint()之类的内容绘制的形状。

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

修改

在一个例子中,我在视图中调用的方法是:

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

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

}

1 个答案:

答案 0 :(得分:16)

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

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