如何在android Volley / Picasso / Glide中更快地下载图像?

时间:2015-12-29 05:32:50

标签: android image android-volley picasso android-glide

我正在开发项目,我必须从服务器下载一些图像。我试过这三种方法。

毕加索:

Picasso.with(context).load(image).into(holder.image);

滑翔:

Glide.with(context).load(image).into(holder.image);

排球:

imageLoader.get(image, new ImageLoader.ImageListener() {
        @Override
        public void onResponse(ImageLoader.ImageContainer response, boolean isImmediate) {
            holder.image.setImageBitmap(response.getBitmap());
        }

        @Override
        public void onErrorResponse(VolleyError error) {

        }
    });

毫无疑问,所有这些方法在快速Internet连接中都能很好地工作。 但在2G下载20kb - 25kb的图像需要太多时间。 我也试过图像调整大小和一切。但是并没有从中获得好成绩。 我看到像亚马逊或Flipkart这样的应用程序或任何电子商务应用程序这些应用程序在慢速互联网连接中运行良好,并且还能以良好的分辨率下载所有图像。所以,我想要一些关于这些问题的专家解决方案。

3 个答案:

答案 0 :(得分:2)

Glide,Picasso只是从服务器获取图像并显示它。如果您的网络速度较低,则图像需要更长时间才能加载。你需要重新调整服务器端的图像大小。使用WebP格式而不是JPEG或PNG有助于缩小尺寸而不会降低质量。

注意:您可以使用Thumbor轻松完成此操作。

答案 1 :(得分:0)

如果您需要在某些点击下载单个图像并将其保存到SD卡。他们的Android的DownLoadManager类是完美而简单的解决方案。或者如果您想在Web应用程序中显示一堆图像,那么Universal Image Loader与Volley和Picasso一样有用。要下载图像更快,您必须减小其大小。在服务器端使用WebP格式而不是Jpeg或PNG。

答案 2 :(得分:0)

如果不需要缓存并直接从网络下载,那么Picasso是一个不错的选择。如果需要缓存,则使用AQuery进行图像(或大图像)。在AQuery中有多种缓存选项。