私はAndroidアプリケーションに取り組んでいます。リストビューを含むアクティビティがあります。
リストビューには多くのアイテムがあり、それぞれにビットマップイメージが含まれています。
リストは非常に大きく、多くの画像が含まれているため、ビットマップをロードするときに、一部の古いデバイスでメモリ不足エラーが発生します。
だから私は古いデバイスのために次のことをする方法を探しています:
- ビュー内(またはビューの近く)にあるアイテムのビットマップをロードします
- ユーザーが下にスクロールすると、表示されるはずのビットマップをロードし、現在非表示になっているビットマップを削除します。
- したがって、いつでもビュー(またはその近く)にある画像のみがヒープにロードされ、他の画像はビューに存在しなくなったときに削除されます。
それを行う方法はありますか?
追加情報:
私はビットマップ画像を効率的にロードする方法(Androidのドキュメントと私が見つけたサイト)に関するすべての指示とコードに従いました。また、メモリリークがないことを確認し、すべてのビットマップをリサイクルして、GCが正しく機能することを確認しましたそして最後に、古いデバイスでは、画像の解像度を可能な限り最小にしました。ただし、リストのサイズが原因で、一部のデバイスではメモリ不足が引き続き表示されます。
だから私は上記の提案された解決策を実行できるかどうかを知りたいと思っています。
助けてくれてありがとう