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 に答える