2011-07-20 17 views
7

私のビューには、呼び出されたときに描画されるいくつかのシェイプを変更するいくつかのメソッドがあります。 Javaでは、コンポーネントが更新されていることを確認するためにrepaint()と呼びます。私の意見が正しく更新されることを確認する何かがありますか?変更時にAndroidビューを更新するにはどうすればよいですか?

onDraw()メソッドのinvalidate()メソッドを呼び出すと、最新の状態に保たれるため、描画されるシェイプを変更するメソッドにrepaint()のようなものは必要ありません。

これは正しいのですか、それとも何か他に必要なことはありますか?例に追加するには

EDIT

、私は私の見解で呼び出す方法は次のとおりです。invalidate()を呼び出す

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

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

} 

答えて

16

は、それ自体を再描画する必要があるビューを教えてくれます(onDrawを呼び出す)いつか中未来。したがって、線の太さのようにビュー内で何かを変更した場合は、そのあとにinvalidate()を呼び出します。あなたの視点が最終的​​に更新されることをあなたが知っているその方法。

すべての描画コードは(onDrawで実装する必要があります)、あなたは無効化を呼び出した後、あなたの他の方法は、ちょうど)(、それを描画するために使用される、あなたのビューの状態を変更する必要があります。

+0

私はあなたに正しく従えば、私は 'setLineThickness'メソッドで' invalidate() 'を呼び出すべきですか? – StartingGroovy

+1

あなたのビューのユーザがそれを呼び出すことを心配しないようにするには、はい。私はそこに入れます(方法の最後の行にしてください) –

+0

ありがとう、私はそれを試してみて、それがどうなるか見てみましょう – StartingGroovy

関連する問題