Android リストビューでリスト イメージとリスト アイテムの遅延読み込みを正常に実装しました。Android 4.0+ と Java 7 を使用しています。
私が従ったアルゴリズムは次のとおりです。
ユーザーがリストをスクロールすると、リスト データ (画像 URL を含む) がインターネットからダウンロードされます。
スクロール状態がアイドルの場合、リスト イメージが読み込まれます。
バックグラウンド スレッドでは、最初に画像がキャッシュ内でチェックされます。キャッシュに存在しない場合は、ダウンロードされてキャッシュに保存されます。
最後に、リストビューでイメージが imageview に設定され、アダプターに通知されます。
唯一の問題は、ビットマップをリサイクルするタイミングが明確でないことです。多くの場所で bitmap.recyle() を使用しようとしましたが、次のエラーが発生しました:
java.lang.IllegalArgumentException: リサイクルされたビットマップを描画できません
ここに膨大なコードを追加することはできません。また、プライバシーの問題もあります。誰かがこれについて私を助けてくれますか?
編集
アプリケーションのサイズが 727 KB (インストール時) から 14 MB に増加します。ビットマップをリサイクルした後、アダプタの getView() で「ビットマップからテクスチャを生成できません」と表示されます。誰かがそれを取り除く方法を提案できますか?