改造2:异步下载许多图像并存储在Android文件夹中

时间:2017-10-27 11:26:40

标签: android retrofit2

我需要从远程服务器下载20个图像并存储在Android文件夹中。

这是我的代码:

接口:

@GET
Call<ResponseBody> downloadFile(@Url String url);

片段:

  private void downloadImagesList(List<Image> imagesList) {
    for (Image image : imagesList) {
        final String imageSourceUrl = imageSource.getUrl();                       
            Call<ResponseBody> call = RestClientFactory.getRestClient().downloadFile(imageSourceUrl);
            call.enqueue(new DefaultRestClientCallback<ResponseBody>() {
                @Override
                public void onSuccess(Response<ResponseBody> response) {
                    Toast.makeText(context, "Success download from url: " + imageSourceUrl, Toast.LENGTH_LONG).show();
                    // code to write downloaded image to Android's local folder
                }
            });
        }
    }

如您所见,我迭代循环并为每个图像调用call.enqueue()。 这是好的解决方案吗?这可以执行我的Android应用程序吗?

1 个答案:

答案 0 :(得分:0)

您可以使用GlidePissaco等依赖项从远程服务器下载图像。因为这些提供了更好的缓存和错误处理。看看下面的代码。它使用Pissaco加载图像

首先在build.gradle

中添加Pissaco依赖项
  

编译'com.squareup.picasso:picasso:2.5.2'

Picasso.with(context)
  .load(url)
  .resize(50, 50)
  .centerCrop()
  .into(imageView)