我正在开发一个包含大量drawable的列表视图的Android应用。 它们中的大多数是相同的所以我正在尝试使用HashMap,它在需要时返回相同的分配位图,但仍有大量的分配和GC操作,以便滚动时列表不时被卡住。
在这种情况下,我该如何优化性能?
缓存方法 - loadImage Using google code
mImageWorker.loadImage(pic_url, holder.pic);
holder.*some bitmap*.setImageBitmap(Utility.getBitmap(context, id); //can be one of 5 bitmaps do I use caching with a hashMap
答案 0 :(得分:2)
see this example 这会对你有帮助....
不要在getView()方法下放置太多进程。这将缺乏listview滚动性能 如果你想进行图像处理或绘制到位图会话或任何东西..只需做所有的过程 在加载适配器之前..并且只为getView()...
中的每一行分配值答案 1 :(得分:1)
如果要优化代码,请尝试使用延迟加载概念来加载列表中的图像。请参阅:Lazy Load images on Listview in android(Beginner Level)?
答案 2 :(得分:1)
尝试使用缓存的延迟加载技术,您可以在网上找到许多教程:
You have to see this SO thread
另见:
Multithreading For Performance,Gilles Debunne的教程。
这是来自Android开发者博客。建议的代码使用: