从URL Android加载大量图像的最有效方法

时间:2016-05-07 18:03:49

标签: java android android-asynctask imageview

我正在制作这个netflix风格的应用程序,其中图像被加载到不同的类别。假设狗视频(有15个图像),猫视频(15个图像)等等......所有图像都是从URL加载的,所有这些都需要一段时间才能加载。我想知道我能做些什么来加快这个过程吗?或者可能会显示一个空容器,然后在图像加载时填充它(这很酷)。

这就是我所做的:

我在一个Activity中有多个异步调用,(每个类别1个异步调用)

JSONTask1 dogTask = new JSONTask1();
JSONTask2 catTask = new JSONTask2();
JSONTask3 pigTask = new JSONTask3();
JSONTask4 horseTask = new JSONTask4();

dogTask.execute("");
catTask.execute("");
pigTask.execute("");
horseTask.execute("");

我的实际代码中包含了所有这些内容。感谢。

3 个答案:

答案 0 :(得分:2)

我会使用" 代理模式"。基本上,您需要创建一个包含显示所需的最小信息的类。其中,您有预览图片。 当您通过显示预览内容加载所有内容时,即:每个图片的加载GIF以及电影的标题或其他任何内容。基本上代理将具有"的LoadImage"方法会进行 ajax调用或异步调用,照片会逐个加载。另外,为了使装载更容易,请确保照片不会过大。

答案 1 :(得分:1)

你可以看到Picasso答案,毕加索我建议你这样:

Picasso.with(getApplicationContext()).load("your url").placeholder(R.drawable.your_place_holder).error(R.drawable.showing_when_error_occured)
            .into(imageView, new Callback() {
        @Override
        public void onSuccess() {

        }


        @Override
        public void onError() {

        }
    });

我的另一个建议是:在后端将拇指图像转换为base64格式,然后首先检索拇指并显示它们。然后启动异步任务并在成功时更改图像。 喜欢whatsapp。在whatsapp你有拇指图像,他们有如此低的分辨率和超快。如果您有互联网连接,则单击图像时会加载实际的拇指图像,然后再次单击它们会加载更大的图像。

毕加索网站:http://square.github.io/picasso/

答案 2 :(得分:-1)

与Picasso异步加载它们,您甚至可以显示占位符图像,直到加载真实的图像