私は表面上に描画するゲームスレッドを持っています。ゲーム変数を処理し、キャンバスに描画します。 ボードは、ビューのキャンバスに描画されるビットマップです。 callDrawHelperは最初に簡単にの背景イメージ(ボードと同じサイズ)を再描画します。次にクラスタリストは、ゲーム変数データに基づいてキャンバス上に描画される画像のセットを有する。このプロセス全体が各フレームを実行します。drawBitmapのパフォーマンスとゲームスレッドのフレームレート(アンドロイド)を改善しました。
callDrawHelperはスレッド処理の最高コンポーネントである80ミリ秒に近づきます。これは実際にフレームレートも低下させます。このコードセグメントのパフォーマンスを向上させるにはどうすればよいですか。
protected void callDrawHelper() {
Canvas gfx = drawJustBackground();
for (int i = 0; i < clusters.size(); i++) {
PieceCluster cluster = clusters.get(i);
if (cluster.isVisible) {
gfx.drawBitmap(cluster.Picture, cluster.BoardLocation.left,
cluster.BoardLocation.top, null);
}
}
}
protected Canvas drawJustBackground() {
Canvas gfx = new Canvas(board);
gfx.drawBitmap(background, 0, 0, null);
return gfx;
}