我已经学习了几天的android编程。我正在创建一个从drawable文件夹中读取图像的电子书应用程序。我已成功实现了在后台使用asyncTask加载位图的pageviewer活动,并在加载完成之前显示文本“loading ...”。
我想使用gridview在另一个活动中显示一个页面列表,以便用户可以滚动页面网格并选择任意一个。我按照android gridview教程,并没有太多问题。但是因为我在drawable中有大约50个图像,所以看起来gridview适配器在所有图像都被折叠并放置在网格中时显示网格。显示网格需要花费大量时间,滚动时速度很慢。
我想知道是否有更好的方式来异步显示网格,比如显示第一个项目然后显示第二个项目等等,而不是等待很长时间并显示网格。我看到一些主题,如延迟加载,看起来与我想要的类似,但它们都显示来自网络的图像,这令人困惑。希望我可以得到一些消化,或者如果有任何其他方式。
答案 0 :(得分:3)
您显示的图像可能有点太大,无法与当前形式的GridView一起使用。
我猜您需要使用GridView来显示缩略图,因此一种可能的方法是存储每个页面的缩略图大小的副本,并使用网格中的那些。
您还可以尝试在清单中切换硬件加速,一旦图像足够小以便加快加载,这可能会帮助您滚动。但afaik hw加速仅适用于3.0及以上。
答案 1 :(得分:3)
你有没有试过Fedor的Image Lazy Loader?
以下是链接:Lazy load of images in ListView,
我知道你想为GridView实现它,但你仍然可以参考示例代码中给出的 ImageLoader 类。
您甚至可以尝试此示例Lazy Loading GridView。我没试过,但是当我发现它时,我认为这可能是你的帮助。