Android 我是否应该错开大量图像加载呼叫?
我有一个包含大约100个大图像的列表视图。每个图像约为640.640 jpg,显示屏幕大小为1/2。典型的画廊 我目前正在使用奇妙的universal-image-loader-1.9.2加载图像Android 我是否应该错开大量图像加载呼叫?,android,listview,android-imageview,Android,Listview,Android Imageview,我有一个包含大约100个大图像的列表视图。每个图像约为640.640 jpg,显示屏幕大小为1/2。典型的画廊 我目前正在使用奇妙的universal-image-loader-1.9.2加载图像 ParseFile photoFile = p.getParseFile("imageFile"); ImageLoader imageLoader = ImageLoader.getInstance(); imageLoader.displayImage( photoFile.getUrl(), t
ParseFile photoFile = p.getParseFile("imageFile");
ImageLoader imageLoader = ImageLoader.getInstance();
imageLoader.displayImage( photoFile.getUrl(), theImageView );
现在,当它们加载时,ListView有点结巴 现在,巧合的是,我的手机在一个非常慢的WiFi网络上。事实上,它像丝绸一样光滑。 一开始,我不明白为什么突然改善!机缘巧合 事实上,在这种情况下:是否值得错开调用来加载图像 例如,我可以在每次通话之间留出0.1英寸 或者事实上,我应该一个接一个地做吗 这是怎么回事?所有的安卓工程师都这么做吗?干杯 我已经应用了谷歌搜索到的所有其他经典技术,实现了平滑的列表视图滚动。干杯 (请注意,我已经尝试了许多系统来加载图像,这没有什么区别,通用图像加载程序没有问题,因为它会震动。)
ashishduh,这是来自getView的代码…正如您所看到的,它很简单 (注意-设置大小没有任何区别。如果我尝试使用固定的500.500,则大小相同)
记录下在这里搜索的所有人 我只是根据评论中的建议尝试了毕加索(谢谢) 真的,太棒了。只有截击才会更好 毕加索的作品如此之好,我关于惊人的图像调用的问题是毫无意义的 希望它能帮助别人 如果有更好的答案,请在这里发布
PS1重要的一点是,毕加索有一个“fetch”命令,这是一个预热命令。在某些情况下,你可以使用它来获得更大的效果
PS2正如我上面提到的,唯一比毕加索更好的事情就是抽射。希望它能帮助别人。对于任何在这里搜索的人来说 我只是根据评论中的建议尝试了毕加索(谢谢) 真的,太棒了。只有截击才会更好 毕加索的作品如此之好,我关于惊人的图像调用的问题是毫无意义的 希望它能帮助别人 如果有更好的答案,请在这里发布
PS1重要的一点是,毕加索有一个“fetch”命令,这是一个预热命令。在某些情况下,你可以使用它来获得更大的效果
PS2正如我上面提到的,只有一件事比毕加索更好,那就是抽射。希望它能帮助别人。“现在,当他们加载时,你的ListView有点结巴“--使用Traceview可以准确地找出问题所在。您可以使用此LIB异步加载或下载文件,这对性能视图wSakly非常有帮助—这也是一个令人难以置信的提示。(应该是答案吗?)Universal Image Loader令人惊叹,令人敬畏。但是我注意到您引用的包声明避免了重复的同时抓取,如果是这样的话,也许就是这样。我对UIL不太熟悉,但是如果它是真正的异步加载,那么应该是0 stutter。我使用了一个类似的库,名为gridview,它包含数百幅图像,没有任何结巴。也许发布你的适配器
getView
code?我会投入2美分:对于图像库,我会使用类似的东西。显然,这并不能真正回答你的问题。但也许这个概念会给你一个不同的方法:一句话,女士们先生们。。。标页码换言之,假设您一次加载10个图像。我想它会足够快。然后,按下一个按钮(因为您将ListView设计为有页脚,是吗?),加载下一个10。接下来的10天。。。一次又一次(真是一个诗人!)“现在,当他们加载时,ListView上会有点结巴”——使用Traceview可以准确地找出问题所在。你可以使用这个libs异步加载或下载文件,这对性能视图非常有帮助——这也是一个令人难以置信的提示。(应该是答案吗?)Universal Image Loader令人惊叹,令人敬畏。但是我注意到您引用的包声明避免了重复的同时抓取,如果是这样的话,也许就是这样。我对UIL不太熟悉,但是如果它是真正的异步加载,那么应该是0 stutter。我使用了一个类似的库,名为gridview,它包含数百幅图像,没有任何结巴。也许发布你的适配器getView
code?我会投入2美分:对于图像库,我会使用类似的东西。显然,这并不能真正回答你的问题。但也许这个概念会给你一个不同的方法:一句话,女士们先生们。。。标页码换言之,假设您一次加载10个图像。我想它会足够快。然后,按下一个按钮(因为您将ListView设计为有页脚,是吗?),加载下一个10。接下来的10天。。。一次又一次(多么伟大的诗人啊!)。
...
v.someTextView.setText(blah);
v.someTextView.setText(blah);
// and now the big image
if (p.containsKey("imageFile"))
{
// this cell has a big image
v.mainImage.setVisibility(View.VISIBLE);
ParseFile photoFile = p.getParseFile("imageFile");
// ...using p.getNumber("imageWidth").floatValue(); and height
// from the cloud, calculate needed width/height on the phone...
v.mainImage.getLayoutParams().width = Math.round(desiredGlassWidth);
v.mainImage.getLayoutParams().height = Math.round(desiredGlassHeight);
ImageLoader imageLoader = ImageLoader.getInstance();
imageLoader.displayImage( photoFile.getUrl(), v.mainImage );
}
else
{
// this pcell has no big image
v.mainImageIV.setVisibility(View.GONE);
}
...