2

この質問は非常に基本的に見えるかもしれませんが、1,000 を超えるアイテムがある RecyclerView で Glide を使用することを考えています。このリストを開くと、Glide はそれらのすべてをダウンロードし始めますか、それとも実際に目の前にあるものだけをダウンロードし始めますか? A から E にすばやくスクロールすると、B、C、D の画像もダウンロードされますか?

4

1 に答える 1

5

Glide.with.load.intoあなたにラインを入れてonBindViewHolder、パフォーマンスを楽しんでください。

Glide はバインドされた画像のみをロードしますが、慎重にロードします。したがって、アダプターの長さは 1000 ですが、最初の画面に 5 つしか収まらない場合、それらの 5 つが RecyclerView によってバインドされるため、5 つの画像が要求されます。3 つが読み込まれた後にスクロールを開始し、2 つが読み込み中の場合、リスト項目がリサイクルされると、それらの 2 つがキャンセルされます。

つまり、6 つの ImageView と、それらの ImageView の 5 ~ 6 に画像が表示されます。ビューのサイズが同じ場合、内部のビットマップのサイズも同じになるため、ビットマップのサイズが一致すると、Glide がそれらを再利用しようとするため、パフォーマンスの向上が期待できます。

高速スクロールとは、アイテムがバインドされるとすぐにすべての画像が読み込まれることを意味しますが、RecyclerView はいくつかのアイテム レイアウトをインフレートしたままにしておくだけなので、おそらくサーバーにリクエストが行われる前であっても、高速キャンセルが期待できます。スクロールが落ち着いた後に開始される実際に読み込まれる画像はほとんどありません。

wiki で詳細情報を見つけることができるかもしれません: https://github.com/bumptech/glide/wiki/Resource-re-use-in-Glide

于 2015-10-01T09:37:52.677 に答える