我应该错开大量的图像加载调用吗?

时间:2014-06-03 14:21:15

标签: android listview android-imageview

我有一个包含大约100张大图像的ListView。每幅图像约为640.640 jpg,显示为1/2屏幕尺寸。典型的画廊。

我目前正在使用精彩的universal-image-loader-1.9.2加载图像。

ParseFile photoFile = p.getParseFile("imageFile");
ImageLoader imageLoader = ImageLoader.getInstance();
imageLoader.displayImage( photoFile.getUrl(), theImageView );

现在,当你加载时,你会在ListView上得到一些口吃。

现在,巧合的是,我在非常慢的WiFi网络上安装了手机。事实上,它是光滑的。

起初,我无法解决突然改善的原因!缘分!

事实上,在那种情况下:是否值得错开加载图像的调用?

所以,我可以离开0.1"例如,在每次通话之间。

或者实际上,如果我只是这样做,可能会跟随另一个吗?!

那里的交易是什么? 所有Android工程师都会一直这样做吗?干杯!

我已经应用了所有其他经典技术,我已经用谷歌搜索了平滑的ListView滚动。干杯

(请注意,我已经尝试了许多系统来加载图像,并没有什么区别,但它不是通用图像加载器的问题,它不会出现问题。)


ashishduh,这里是来自getView的代码......如你所见,它是微不足道的。

(注意 - 设置大小没有区别。如果我尝试使用500.500固定,它是相同的)

...
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);
    }
...

1 个答案:

答案 0 :(得分:5)

对于在Google上搜索的人的记录......

我刚刚根据评论中的建议尝试 Picasso ...(谢谢)

真的,太棒了。只有Volley会更好。

毕加索效果很好,我关于错误图像调用的问题毫无意义。

http://square.github.io/picasso/

希望它有所帮助!

任何更好的答案,在这里发布积分!


PS1重要的一点是,毕加索有一个" fetch"命令,这是一个预热。在某些情况下,您可以使用它来获得更好的结果。

正如我在上面提到的那样,PS2是唯一比毕加索更好的事情,就是转向Volley。希望它可以帮到某人。