用毕加索加载Dropbox照片?

时间:2016-05-12 12:42:44

标签: android dropbox-api picasso

当我想从Dropbox获取我的照片并将其加载到GridView中时我有一个问题,我也想在适配器中使用Picasso。 方法load()将采用可下载的URL,

PS:我正在使用Dropbox Android SDK 1.6.1

如果我使用方法media()并从Dropbox中获取url:

// Get the metadata for a directory , | request |
DropboxAPI.Entry dirent = Log_in.mApi.metadata(Log_in.APP_DIR + "/images/", 1000, null, true, null);
if (!dirent.isDir || dirent.contents == null) {
    // It's not a directory, or there's nothing in it
    mErrorMsg = "File or empty directory";
    //return false;
}

// Make a list of everything in it that we can get a thumbnail for
thumbs = new ArrayList<>();
imagePath = new ArrayList<>();
for (DropboxAPI.Entry ent : dirent.contents) {
    if (ent.thumbExists) {
        // Add it to the list of thumbs we can choose from
        thumbs.add(ent);
        // do another requests (many requests to dropbox to get the urls , and this is terrible it takes request time for each image !
            imagePath.add(Log_in.mApi.media(ent.path,true).url);
        }
    }

根本不是实际的,因为这需要花费很多时间才能得到每个网址:

  1. 在照片文件夹中搜索图像(1个请求)
  2. 使用[media] [1]获取直接URL(1 *(图像)请求)
  3. 在适配器中使用Picasso(1 *(图像)请求) 我会计算(图像)* 2 + 1个请求计数
  4. 很糟糕,需要更好的解决方案。

    PS:我试过这个https://medium.com/@jpardogo/requesthandler-api-for-picasso-library-c3ee7c4bec25#.wpmea1eci

    但是代码不完整,有些类没有解析/存在,有些变量没有定义。

    所以任何人都知道如何使用毕加索来处理Dropbox图像api。

1 个答案:

答案 0 :(得分:1)

我认为Dropbox中有一个关于此的示例,请尝试检查此链接dropbox sample

您需要查看2个文件PicassoClient.java和FileThumbnailRequestHandler.java