2017-09-18 11 views
0

私のアプリケーションにListViewが表示され、ListViewに画像を含む情報がほとんどないListViewItemがある場合、これらの画像はキャッシュされていますか?Android Drawable Image Caching

つまり、ListViewが1000個のアイテムを表示し、各アイテムが以下のようなレイアウトに1つのイメージを持ち、そのイメージがリソース/ドロワブルにある場合、イメージは1000回ロードされます(、 (のimage_size)、または100030のすべてのイメージに対して1回だけキャッシュされてロードされます()ので、メモリのimage_sizeは1つだけを消費します()。

+--------------------------------------------------+ 
|   |    TEXT      |    
| IMAGE |--------------------------------------| 
|   |    TEXT   | TEXT | 
+--------------------------------------------------+ 

答えて

1

画像を含む情報のいくつかの作品を示している私のアプリケーションは、リストビューを表示され、リストビューがのListViewItemを持っている場合は、これらの画像は、キャッシュされていますか?

イメージをロードした項目に表示するたびに(アイテムが表示されなければならない)、それはメモリの1 x image_sizeを消費する、あなたは、スクリーンに10項目を表示するとき、それはメモリの10 x image_sizeを消費するが、場合表示するアイテムアイテムが1000件あります。別のケースです。これらのイメージを表示しただけで、ImageLoaderロジックを使用しなかった場合は、メモリが大量に消費され、結果としてOOMになります。

ロジックを書くか、これをほぼ完成させたライブラリを使用してください。たとえば、あなたが使用することができ Picasso:Android上で画像の読み込みの

多くの一般的な落とし穴はピカソによって自動的に処理されています

アダプタでImageViewのリサイクルとダウンロードキャンセルの取り扱い
  • メモリを最小限に抑えた複雑な画像変換。

  • 自動メモリとディスクキャッシュ。

それがJavaのlibなので、あなたはXamarinでそれを使用するBinding Libraryを使用することができます。

+0

@YorkShenありがとう – pixel

+0

Xamarin用に設計されたFFImageLoadingを使用することもできます。 –