0

4ページのビューページャーがあり、各ページにlistViewがあります。これまでのところすべて問題ありませんが、リストをスクロールすると、GC_EXTERNAL_ALLOCが1000回キックされ、アプリのパフォーマンスが低下します。そこで、 Romain Guyのドキュメントに従って、DDMSによる割り当てを追跡しました。これは、リストアイテムに画像を読み込んだためです。

画像を保存してから、以前に保存した画像があるかどうかを確認します。ある場合は、次を使用します。

 img.setImageDrawable(Drawable.createFromPath(imagePath));

割り当てトラックを取得すると、この行がスクロール中に大量のメモリを割り当てていることがわかります...なぜだろうか?そして、私を示唆するために画像をロードするための感情的な方法があれば?

どんな助けでもいただければ幸いです。

4

2 に答える 2

1

リストビューに「N」個の画像を表示する必要があると仮定しました。この画像はインターネットから取得したものです。

参照:Fedors Lazy Loading

于 2013-01-03T07:39:53.533 に答える
1

あなたが見つけることができる最高のドキュメントはここにあります:http://developer.android.com/training/displaying-bitmaps/index.html

しかし、正直に言うと非常に複雑です。RoboSpiceの次のバージョンでは、このすべての複雑さをカプセル化する方法を提供したいと考えています(ui-spicelistモジュール)。

于 2013-01-03T07:40:04.873 に答える