2017-04-24 7 views
1

私はアンドロイドアプリを書いています。私は各項目の一部が画像である項目のリストを表示するために使用しているArrayAdapterを持っています。私はadapersのgetView()メソッドで画像を非同期的にダウンロードしています。できるだけ効率的にし、あまりにも多くの再ダウンロードを止めるためにキャッシュを使用しています。私が直面している問題は、各項目のgetView()メソッドがアンドロイドによって必要な回数だけ呼び出されるということです。これは、イメージが実際にダウンロードできるよりも速いと呼ばれることが多く、同じイメージをダウンロードするために何度もキューに入れてからキャッシュに入れることさえできます。イメージが繰り返しダウンロードされるのを防ぐ方法はありますか?それはちょうどモバイルデータの大きな浪費のようです。Android、リストアダプターで効率的に画像をロード

+0

ここで説明するにはあまりにも多くの説明がありますが、この開発者ガイドは次の点で役立ちます。https://developer.android.com/topic/perfor mance/graphics/load-bitmap.html – Opiatefuchs

答えて

0

リストまたはrecyclerviewで画像をダウンロードして表示するためにGoogleがお勧めされて受け入れられたベストプラクティスは、グライドライブラリに

https://github.com/bumptech/glide

を使用することですAPIは、この

のように見えます

Glide.with(context) .load(url) .centerCrop() .placeholder(R.drawable.loading_spinner) .crossFade() .into(myImageView);

+0

丸みを帯びたコーナーの画像を使用しているため、これにはいくつかの欠点と制限がありましたが、とても感謝しています。ちょっとした研究で回り込むことができないという問題はありません –

+0

うん、グライドは素晴らしいです:D – Shmuel

1

サードパーティーのイメージダウンローダーライブラリを使用する場合は、Picasso
を使用することができます。そのactullayは使いやすいです。あなたのアプリをキャッシュします。
チュートリアルthisを参照できます。
ハッピー学習:)

関連する問題