私はOOMの概念に精通しています。私はここで質問された数多くの質問に出くわしました。これはOOMに関する質問のように聞こえるかもしれませんが、今は別の問題があります。ListViewのメモリ不足
私は何百と何百もの画像を持っています。これは、単一の画像で表示する必要があります。ListView
Activity
です。
私はFedorの遅延読み込みコンセプトを利用しました。
画像が小さく(50-100画像のような)、コードが正常に機能しますが、ユーザーがListView
(最終的に)スクロールするとすぐに200〜300枚の画像が得られます。メモリ不足例外が発生します。
デベロッパーサイトにhereと表示されているような効率的なアダプターの概念を使用していますが、これは最適なカスタムアダプターの使用方法だと思います。
私がこれまで見てきた提案は、ビットマップサイズを縮小するなど、いくつかの方法でビットマップサイズを減らすことに基づいています。私はすでにそれらの方法を試みました。しかし、OOMはある時点で発生します。
イメージの品質を下げることは、ユーザーエクスペリエンスに影響するように見えるため、また、大量のビットマップでは機能しないため、この例外を処理する方法と似ていません。ここ
私の質問は以下のとおりです。
- どのようにあなたがOOMに直面することなく、単一
ListView
でn
画像を表示しますか? - このシナリオでは、ベストプラクティスは何ですか?
ListView
で約500枚の画像を表示できますか?
ご協力いただきまして誠にありがとうございます。
愚かな質問を申し訳ありませんが、500枚の画像すべてを記憶していますか? – Blackbelt
いいえ、私はそれを記憶したくありません。遅延読み込みの概念を使ってsdcardに保存します。 –
同じ種類のキャッシュを使用してビットマップをメモリに保持しますか? – Blackbelt