1

メインメニューのあるAndroidアプリケーションを作成しました。メインメニューで、ユーザーはRunnableで新しいアクティビティを開くさまざまな「アプリ」を選択できます。

メニューは、カスタムListViewAdapterの上に表示されます。アダプタのすべての要素は、表示されたメニューエントリのビットマップを保持します。私のビットマップは最大3MBのメモリを使用します。

だから私の質問は、ユーザーがアンダーアプリを開いたときにメニューエントリを解放し、メニューに戻ったときにそれを新しく構築するのが賢明かどうかです。

編集:それで、私は自分の問題や質問を十分に説明していなかったと思います。メインメニューには、カスタムオブジェクトMenuEntryのリストがあります。すべてのMenuEntryは、表示されたアイコンのDrawableを保持します。私のListViewには、Drawableを取得し、それをImageViewで使用してMenuEntryにアイコンを表示するアダプタがあります。

したがって、MainMenuアクティビティが一時停止してメモリ(約3 MB)を解放するときに、MenuEntryのリストを削除することをお勧めします。そして、ユーザーがメインメニューを再度開いたときに、エントリを新しく作成します。

4

2 に答える 2

0

ビットマップをバイト配列に圧縮して、コレクションまたは配列に保存することを提案します。ListViewAdapterで、バイト配列からビットマップを設定します。ここで見つけることができるビットマップ圧縮の例:Android:場所に保存するビットマップ

于 2012-09-07T10:24:29.747 に答える
0

「アダプタの要素がビットマップを保持している」理由がよくわかりません。たぶんこれは役立つでしょう:LazyList-ディスクキャッシュにビットマップを保存します:ListViewでの画像の遅延ロード

ビットマップを効率的に表示する-http ://developer.android.com/training/displaying-bitmaps/index.html

于 2012-09-07T10:31:03.360 に答える