invalidate(l,t,r,b)
を使用してView
のいくつかの領域を無効にすると、onDraw()
メソッドでクリップ領域を使用してそれらの領域を指定する必要がないことが示されているようです。一方、私はカスタムビューの多くの例を見てきましたが、領域を無効にするために汚れた領域を並行して維持してから、汚れた領域を使ってonDraw()
メソッドでキャンバスをクリップします(たとえば、 the KeyBoardView
class)invalidate(l、t、r、b)の後でクリップ領域を明示的に設定する必要がありますか?
この問題に関する文書は不完全ですか? invalidate()
とclipRect()
を手で使うべきですか?
キャンバスの部分は私には明らかです。説明を無効にすることはあまりありません。 'invalidate(...)'と言うと、アンドロイドはリージョンを再描画します。どうしたの? 'onDraw()'の中から無効化された領域をどのように描くのですか?または、全体のビューを描画するためにコードを作成し、アンドロイドが無効化された領域を描画しますか? (これは 'clipRect()'と非常によく似ています) – ilomambo