0

グリッドビューのアダプタに問題があります。アダプタにより、特定のアイテムが必要になるたびにビットマップがロードされます。ディスクキャッシュとメモリキャッシュがあり、スクロール中の読み込みを無効にしているので、一般的に、グリッドビューは高速です。

しかし、私が本当に望んでいるのは、特定のビットマップをImageViewに常に再バインドする必要をなくすことです。gridviewはビューを再利用しているため、getViewメソッドはImageViewをリセットし続け、メモリから画像をリロードする必要があります。これは、アイテムが画面外にスライドし、ビットマップがメモリキャッシュから読み取られてImageViewに投稿されるときに遅延が発生するため、非常に愚かな効果を生み出します。

GridViewを実際に質素にするのではなく、より多くのビューを「保持」する方法はありますか?私は最大で約20個のアイテムを持っており、すべてのビットマップをスケーリングしているので、可能であればもっと多くのビューを保持したいと思います。

4

1 に答える 1

0

より良いメモリキャッシュを使用してこれを解決することができました。本当の違いは、画像がメモリ内にあるかどうかをチェックするメカニズムを追加し、必要な画像がメモリ内にある場合はビューを「リセット」しないことでした。グリッドビューの画面外にキャッシュされたビューの数を設定する簡単な方法がないことはまだ偽りのようですが、より良いメモリキャッシュ管理により、問題は目立たなくなりました。

于 2013-02-22T01:54:16.490 に答える