2016-05-12 14 views
0

Ich habe ein Problem, wenn ich meine Fotos von Dropbox bekommen und es in GridView laden und ich möchte Picasso in Adapter auch verwenden. Methode load() wird eine herunterladbare URL nehmen,Load Dropbox Fotos mit Picasso?

PS: i SDK Dropbox Android bin mit 1.6.1

wenn i Methode Medien() und holen url von Dropbox wie folgt aus:

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

es ist nicht practicle gar cuz es so viel Zeit in Anspruch nehmen würde jede uRL Dies ist das Szenario zu erhalten:

  1. Suche Bilder in Ordnern Fotos (1 Anfrage)
  2. Verwenden von [media] [1] für direkte URL (1 * (Bilder) Anfragen)
  3. Mit Picasso im Adapter (1 * (Bilder) Anfragen) Ich werde zählen (Bilder) * 2 + 1 Anfragen zählen

es ist schrecklich, brauche eine bessere Lösung.

PS: Ich habe versucht, dieses https://medium.com/@jpardogo/requesthandler-api-for-picasso-library-c3ee7c4bec25#.wpmea1eci

aber der Code ist nicht vollständig gibt es einige Klassen nicht gelöst/existiert und einige Variablen nicht definiert.

so bekam jeder eine Idee, wie man mit Dropbox Bilder api mit Picasso arbeiten.

+0

Möglicherweise möchten Sie zur Übersicht sehen müssen überprüfen herunterladen direkt anstelle von Medienlinks: https://www.dropboxstatic.com/static/developers/dropbox-android-sdk-1.6.3-docs/com/dropbox/client2/DropboxAPI.html#getThumbnail(java.lang.String ,% 20java.io.OutputStream,% 20com.dropbox.client2.DropboxAPI.ThumbSize,% 20com.dropbox.client2.DropboxAPI.ThumbFormat,% 20com.dropbox.client2.ProgressListener) – Greg

+0

@Greg-Methode laden von Picasso kann nicht herunterladen Eingabestream und drob Pox-Download hängt vom Eingabestrom ab. – mhdjazmati

Antwort

1

Ich glaube, es ist eine Probe aus Dropbox darüber, versuchen Sie den Link dropbox sample

gibt es zwei Dateien, die Sie PicassoClient.java Und FileThumbnailRequestHandler.java

+0

Wie kann ich das Beispiel ausführen? –

+0

klonen Sie einfach den Repo mit Git und importieren Sie das Projekt in Ordner Beispiele von Android Studio. –