2012-01-22 5 views
1

私は2Dマップディスプレイの座標を持つ2次元配列を持っています。 これはキャンバスに描画されます。 私はいつも私のキャンバスで何かを変更したい場合は、これらの描画を非常に重い 私はそれが2d配列を介してForループの代わりにすることが可能だと思っていたので、私は最初の結果を保存することができればそれを保存し、毎回私は何か他の2dマップを変更します。たくさんのビットマップを1つのビットマップに保存できますか? (2d)

はcanvas.save()とcanvas.restore()は同じ時間だけ呼び出すことができるので、最初の出力を格納してから123回復元することができます。

キャンバスを別の方法で保存することができたら、おそらく最初の結果をバイマップに保存することができましたか?

私はキャンバスに既に描画されているものを "調整"/"編集"できないことを知っています。 マップは決して変更されません。

答えて

1

私はそれを考え出しました。 キャンバスを使って、たくさんの画像を含む背景を1つのビットマップに描くことができます。

最初に、希望のint heightとint widthで空のビットマップを作成します。これは、すべてのタイルを(小さな画像に)描画するビットマップになります。

Bitmap background = Bitmap.createBitmap(width、heigth、Bitmap.Config.ARGB_4444);

(Bitmap.Config.ARGB_4444の構文についてはわかりません) 新しいキャンバス(ビットマップ)でキャンバスを作成すると、キャンバスがビットマップに書き込まれます。

キャンバスキャンバス新しいキャンバス(背景);

あなたが好きなようにキャンバスを書くことができます。すべては、後で使用するためにビットマップに保存されます。

+0

メモリを大量に消費することはありませんか? – Arjun