サーバーからに画像をダウンロードListView
してSDカードに保存しています。
そして、次回リストビューが表示されたときに、非同期方式のみを使用してSDカードからリストビューにアクセスしている場合は、このアプローチを使用して、ユーザーがサーバーにアクセスする必要がないようにします。
しかし、すべての画像がSDカードからリストビューに読み込まれているときに、かなり速くスクロールすると、キャッシュからではなくSDカードからのみアクセスしようとするたびに推測されます。
サーバーから画像をダウンロードしているときにも同じ問題に直面していたので、SDカードに保存しようと思いました。しかし、私は同じ問題に直面しています。
これが私のコードListImageDownloaderです。と呼ばれる関数があり、コードが次のようdownloadBitmap(String)
な名前の別の関数を作成しましたdownloadSDBitmap(String)
Bitmap downloadSDBitmap(String urlId) {
Bitmap bitmap = null;
File file = new File(
fileLoc +"/"+ urlId+".png");
if(file.exists()){
Log.d("PATH" , file.getAbsolutePath());
bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
}
return bitmap;
}
これを除けば、キャッシュコード全体とすべてが同じです。だから誰かが私を助けることができます私がGtalk
速くスクロールするとAndroidアプリケーションのようにそれを改善する方法それはその後一度だけ画像をロードします私が速くスクロールすると画像はそのままでネットワークからフェッチされません
アップデート
これらは私のパラメータです
final static int MAX_ENTRIES = 150;
private static final int HARD_CACHE_CAPACITY =50;
private static final int DELAY_BEFORE_PURGE = 10 * 1000; // in milliseconds