Android ListView具有许多相同的drawables性能

时间:2012-06-05 12:35:34

标签: android performance listview android-listview drawable

我正在开发一个包含大量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

3 个答案:

答案 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开发者博客。建议的代码使用:

  1. AsyncTasks。
  2. 硬盘,有限大小的FIFO缓存。
  3. 一个柔软,易于垃圾收集的缓存。
  4. 您下载时的占位符Drawable。