2013-11-18 4 views
0

Я хотел бы получить изображения из Dropbox и показать их внутри моего андроида приложения gridview.Извлечение изображений из Dropbox и их отображение в андроиде gridview

Первая проблема заключается в том, что изображения должны быть внутри папки с возможностью рисования, чтобы отображать в gridview. Вторая проблема заключается в загрузке или извлечении изображений из папки Dropbox. API Dropbox Sync отображает только данные в моем Dropbox, и он находится на сервере не в моем клиентском приложении.

Может ли кто-нибудь помочь мне с этими трудностями?

Заранее спасибо.

+0

Итак, давайте начистоту; вы хотите, чтобы изображения отображались в gridview в вашем приложении, но Dropbox Sync API переводит вас в вашу папку Dropbox? Было бы полезно, если бы вы показали свой код. – LotusUNSW

+0

перечисляет все файлы внутри папки Dropbox. Но все эти файлы хранятся на сервере Dropbox не внутри локального хранилища. У меня возникли трудности с загрузкой этих изображений в мое приложение. – Nick

ответ

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; 
} 

ALL вашего решения

Попробуйте, Enjoy кодирования ..

Смежные вопросы