目前我有一个使用线程的工作解决方案(一个新线程被实例化并为每个图像运行),但我随处读到线程内存昂贵且更好地使用Android中的其他解决方案。但不太确定哪种情况更适合这种情况(AsynchTask,一个线程池,还是......?)。网格是可滚动的,如果我快速滚动,我将同时实例化数百个线程......
有一件事有助于缓存图像,因此线程只是第一次创建并运行。但无论如何,我想优化第一次加载。
答案 0 :(得分:2)
有很多开源项目,但是做了所有这些:异步加载图像并缓存它们等。一些这样的项目是:https://github.com/thest1/LazyList和https://github.com/nostra13/Android-Universal-Image-Loader
答案 1 :(得分:1)
我认为一个额外的线程应该足够了......我可能错了,但你会有UI线程来处理UI呈现等等,然后是AsyncTask来加载图像(或线程)。在那里你可以实例化尽可能多的并行donwloads,并在每个加载后你可以向UI线程发送一条消息更新GridList ..
实际上,当您使用其他一些库进行HTTP连接时,它会为每个下载实例化额外的线程(或asynctask)。
我一直在与this one合作,它完美无瑕。