我正在制作这个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("");
我的实际代码中包含了所有这些内容。感谢。
答案 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你有拇指图像,他们有如此低的分辨率和超快。如果您有互联网连接,则单击图像时会加载实际的拇指图像,然后再次单击它们会加载更大的图像。
答案 2 :(得分:-1)
与Picasso异步加载它们,您甚至可以显示占位符图像,直到加载真实的图像