我遇到网格视图适配器的问题。适配器会在每次需要特定项目时加载位图。我有一个磁盘缓存和内存缓存,我在滚动时禁用加载,所以一般来说,gridview很快。
但我真正喜欢的是消除不断地将特定的Bitmap重新绑定到ImageView。由于gridview正在重用视图,因此getView方法必须不断重置ImageView并从内存重新加载图像。这会产生一种非常愚蠢的效果,因为当项目从内存缓存中读取并发布到ImageView时,项目会在屏幕外滑动并返回时会有延迟。
有没有办法让GridView“保持”更多视图而不是真正节俭?我最多有大约20个项目,并且我可以缩放所有位图,所以我真的想在可能的情况下继续使用更多的视图。
答案 0 :(得分:0)
我能够使用更好的内存缓存来解决这个问题。真正的区别是添加一种机制来检查图像是否在内存中,如果所需图像在内存中,则不“重置”视图。对于网格视图来说,没有一种简单的方法可以在屏幕上设置缓存视图的数量,但更好的内存缓存管理使问题不那么明显。