画面全体を占めるカスタム ビューがあります。(ピアノの鍵盤) ユーザーがキーに触れると、それinvalidate()
が呼び出され、キーボード全体が再描画されて、タッチされたキーの新しい状態が表示されます。
現在、ビューは非常にシンプルですが、もう少し素敵なグラフィックを追加する予定です。キーボード全体が動的にレンダリングされるため、キーボード全体を再描画するとコストが高くなります。
そこで、部分的な再描画を見てみましょう。今invalidate(Rect dirty)
、正しいダーティ リージョンで呼び出します。onDraw(Canvas canvas)
実際に部分的な再描画が必要な場合は、ダーティ リージョンにのみキーを描画するようにメソッドを設定します。これにより、これらのキーが描画されますが、キーボードの残りの部分は完全に黒くなり、まったく描画されません。
呼び出しinvalidate(Rect dirty)
が現在の を「キャッシュ」canvas
し、ダーティ リージョンでの描画のみを「許可」すると期待するのは間違っていますか?
私が望むものを達成する方法はありますか?(キャンバスを「キャッシュ」して、汚れた領域のみを再描画する方法はありますか?"