我的视图中有一些方法可以修改调用时绘制的一些形状。在Java中,为了确保组件更新,我会调用repaint()
。有什么东西能确保我的观点正确更新吗?
我曾在某处阅读invalidate()
方法中调用onDraw()
会使事情保持最新,因此我不需要在我的方法中修改repaint()
之类的内容绘制的形状。
这是正确的,还是我还有别的事情要做?
修改
在一个例子中,我在视图中调用的方法是:
public void setLineThickness(int thickness) {
aLineThickness = thickness;
if(aLineThicness > 1)
//repaint(); - Okay in Java but not in Android
}
答案 0 :(得分:16)
调用invalidate()将告诉视图将来某个时候需要重绘自己(调用onDraw)。因此,如果您在视图中更改某些内容(如线条粗细),请在其后面调用invalidate()。这样您就知道您的视图最终会更新。
您的所有绘图代码都应该在onDraw()中实现,而您的其他方法应该只是在调用invalidate()之后更改视图的状态,然后用它来绘制它。