2011-07-04 13 views
1

私は自分のアプリケーションで割り当てられたヒープメモリを追跡しており、最大で15.5MBです。これのほとんどはビットマップに由来します。私は "drawable"という名前のフォルダを持っています。すべてのビットマップを配置するので、すべてのデバイスは同じビットマップを画面サイズに関係なくロードします。テストデバイスはDesire HDです。私の質問は:小さな画面デバイスが私のアプリを実行するとき、それは同じ量のメモリを割り当てますか? (私は小さいスクリーンデバイスのためのより小さいビットマップを持っていないことに留意してください)。割り当てられたヒープメモリと異なるサイズのドロワーブル

私が疑問に思う理由は、サイズを変更しても同じリソースから来ているということです。たとえば、400 * 800のビットマップを描画し、300 * 600のビットマップを描画すると、両方をスクリーンに塗りつぶしても、異なる量のメモリを消費することがわかりました。

小さな画面デバイス用のビットマップを小さくすると、少ないメモリを割り当てることになります。 300ビットマップが好きで、300ビットマップのサイズをコピーして小さくする必要がありません。

私がそれをやっている間、別の質問:最低の最大ヒープサイズは16MBです。これは本当ですか?

答えて

0

ビットマップのサイズは、inDensityinTargetDensityに基づいて自動的に変更されます。 これはもちろん、同じビットマップの複数のバージョンを持つよりも遅くなりますが、あなたの場合には最良の選択かもしれません。

+0

私は彼らがサイズ変更されることを知っています。実際にキャンバスに描くと、サイズを変更しています。問題は、小さな画面デバイスでメモリを消費するのか?私が疑問に思うのは、それが何のサイズになっても、同じリソースから来ているということです。たとえば、400 * 800のビットマップを描画し、300 * 600のビットマップを描画すると、両方をスクリーンに塗りつぶしても、異なる量のメモリを消費することがわかりました。 – Emiam

+0

ビットマップを描画するときにビットマップのサイズを変更することは、かなり悪い考えです。それを小さくすると、遅くてメモリが浪費します。読み込んだときにサイズを変更して、描画するサイズが正確になり、描画に必要なだけのメモリを消費するようにしてください。 – mibollma

+0

ビットマップを描画するときにサイズを変更しないで、サイズを変更してから描画します。 – Emiam

関連する問題