我有一个延迟加载的ListView,其中填充了通过网络获取的图像。列表行设置为wrap_content,因此一旦图像加载,它将调整大小并显示满刻度图像。向下滚动时看起来很棒,但是当向上滚动时,行会调整大小并迫使底部行离开屏幕。如何在向上滚动时阻止这种跳跃式滚动?
-----编辑:
图像是不同大小的漫画。有些是2或3帧,它们不是很高。其他人是单帧漫画,他们更高。图像需要占据整个宽度,高度不应该切断任何漫画。
答案 0 :(得分:0)
假设所有下载的图像预计大小相同,大多数开发人员使用的一个好方法是使用“虚拟”图像,直到加载真实图像。该图像将存在于本地,因此几乎可以即时加载。在getView
方法中,显示此虚拟图像,直到下载真实图像,然后简单地替换它。这样可以防止您的行调整大小。
答案 1 :(得分:0)
你必须看到这个link它在后台线程中下载图像。图像被缓存在SD卡和内存中,它使用inSampleSize解码图像以减少内存消耗,并尝试正确处理回收的视图。在图像未完全下载时播放假图像。 “抱歉音乐!!”
答案 2 :(得分:0)
我找到了解决方案。当我收到图像时,我从父级获取宽度,然后将图像视图的高度设置为parentWidth * bitmapHeight / bitmapWidth。这样就可以在创建行视图时调整大小,一旦我知道位图的大小,列表就不会跳转。