从Dropbox中获取图像并在android gridview中显示它们

时间:2013-11-18 02:20:39

标签: android api dropbox

我想从dropbox中获取图片并在我的android应用程序gridview中显示它们。

第一个问题是图像应该在drawable文件夹中,以便在gridview中显示。 第二个问题是如何从dropbox文件夹下载或获取图像。 Dropbox Sync API仅显示我的Dropbox中的数据,而不是我的客户端应用程序上的服务器。

有人可以帮助我解决这些困难吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

这是我实现的方式

    public void getMediaList(String MEDIA_PATH) {
    Logger.e(MEDIA_PATH);
    if (MEDIA_PATH != null) {
        try {
            Entry dirent = mApi.metadata(MEDIA_PATH, 0, null, true, null);
            for (Entry ent: dirent.contents) {
                System.out.println("/"+ent.path);
                if (ent.isDir) {//ent.path
                    scanDirectory(ent);
                } else {
                    addSongToList(ent);
                }
            }
        } catch (DropboxException e) {
            e.printStackTrace();
        }
        getFile();
    }
}


ArrayList<String> List_dropBox_images = new ArrayList<String>();
private void getFile()
{
    for (int i = 0; i < list.size(); i++) {
        try {
            System.gc();
            DropboxLink shareLink = mApi.share(list.get(i).get("Path"));    
            Logger.e("",""+shareLink.url);
            String shareAddress = getLocation(shareLink.url);
            if(shareAddress==null) continue;
            String shareAddress_f= shareAddress.replaceFirst("https://www.dropbox.com/", "https://dl.dropboxusercontent.com/");
            Logger.e(""," address "+shareAddress_f);
            List_dropBox_images.add(shareAddress_f);
        }catch (Exception e) {
            System.gc();
            e.printStackTrace();
        }
    } 


}


private String getLocation(String link)  {
    try {
        final URL url = new URL(link);
        final HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
        urlConnection.setInstanceFollowRedirects(false);

        return urlConnection.getHeaderField("location");
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return link;
}

所有解决方案

试一试,享受编码..