私はいくつかのタイルを持つシンプルなゲームボードを表すカスタムビューを持っています。私はタイルの現在表示されている画像(画像がない場合は0)を格納する2次元配列を持っています。カスタムビューのonDraw()効率的なデザイン
私のonDraw()
の方法の中で、私は配列をループし、タイルの画像を表示します。しかし、私がinvalidate()
を呼び出す唯一の時間は、ボードをリセットするときです。他のすべての場所では、更新が必要な必要なタイルについてのみinvalidate(Rect)
を呼び出します。
onDraw()
のこの実装は効率的にビューを描画しますか?もしそうなら、これを行う良い方法は何でしょうか? (また、 'Rect'領域のみを更新するinvalidate(Rect)の呼び出しを呼び出すことはありませんか?これは、Androidにとっては無視されるかもしれない推奨ですか?)。
この点を明確にしていただければ幸いです。
ありがとうございました。これは、onDraw()がすべてのタイルをループし、それぞれdrawBitmap()を呼び出すとしても、Androidは実際にダーティとマークされた(つまり無効にされた)ものだけを描画することを意味しますか? –
現在の境界(getClipBounds()を使って)がこれらの境界に収まるかどうかを判断し、それらを再描画する必要があると言っていますか(hmm ..どのタイルを決定するかを確認する必要があります) –
20:40以降をご覧ください。http://www.youtube.com/watch?v=N6YdwzAvwOA – Wroclai