2012-04-19 6 views
-2

私は多くの行を描画するときにArraylistの画像のビットマップを追加する必要がある描画アプリケーションを作成しています。残念ながら、私にはメモリ不足例外があります。ヒープのサイズを増やしても問題は解決できません。AndroidでArraylistsにビットマップを追加する際にヒープメモリサイズが増加しますか?

私はこのようなArrayListの中で、現在のビットマップを追加してい:アンドロイドでarraylitsにビットマップを追加しながら

linesbitmap.add(Bitmap.createBitmap(mBitmap)); 

答えて

4

ヒープメモリサイズは増加しているのですか?

もちろんです。バケツに水を注ぐと、バケツにはより多くの水が含まれます。あなたが袋にもっとたくさんのものを入れたら、袋にはもっと多くのものが入っています。より多くのメモリを割り当てると、より多くのメモリを使用します。これはAndroidとあまり関係がありません。これは過去50年の間コンピュータが働いていた方法です。

私は

使用メモリが少なく、それを処理することができません:に

  • がリスト
  • で少数のビットマップが小さいビットマップ(少数のピクセル、低い色深度)が持っていますリスト
  • 削除してリストに追加する前にリスト内のrecycle()ビットマップ
  • データをメモリからファイルに移動する(ビットマップを保持したままリストから削除するなど)
  • データをより効率的に保存する(例:行を表すビットマップではなく、線を描く方法の説明を保持する)
  • そしてそう

に私はまた、あなたは、Androidのほとんどのバージョンに、ヒープのサイズを大きくすることはできませんヒープ

のサイズを大きくしています。

+1

classic CommonsWare style ... –

関連する問題