如何修改Android视图?

Sta*_*ovy 7 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

}
Run Code Online (Sandbox Code Playgroud)

Tho*_*nan 16

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

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