2015-04-14 4 views
5

Ich entwickle eine App, in der ich Bild von URL herunterladen möchte. Ich muss diese Bilder sofort herunterladen und im internen Speicher speichern. Es gibt mehr als 200 Bilder zum Herunterladen. Bitte sagen Sie mir, wie Sie diese Bilder am besten so schnell wie möglich herunterladen können. Wenn eine dritte Teilbibliothek verfügbar ist, teilen Sie das bitte mit.Der beste Weg, um ein Bild von der URL herunterzuladen und in den internen Speicher zu speichern

+0

Sie Picasso oder Volley verwenden –

+0

picasso nicht Speichern Sie diese Bilder im internen Speicher. Es zeigt direkt auf ui –

+1

Sie können Volley Lib und erstellen Sie eine benutzerdefinierte Anfrage, die Ihr Bild direkt in den Gerätespeicher auf Erfolgsantwort schreiben. – Bubu

Antwort

19

Erwägen Sie, Picasso für Ihren Zweck zu verwenden. Ich benutze es in einem meiner Projekte. Um das Bild auf externe Festplatte speichern können Sie Folgendes verwenden:

Picasso.with(mContext) 
     .load(ImageUrl) 
     .into(new Target() { 
      @Override 
      public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { 
       try { 
        String root = Environment.getExternalStorageDirectory().toString(); 
        File myDir = new File(root + "/yourDirectory"); 

        if (!myDir.exists()) { 
         myDir.mkdirs(); 
        } 

        String name = new Date().toString() + ".jpg"; 
        myDir = new File(myDir, name); 
        FileOutputStream out = new FileOutputStream(myDir); 
        bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out); 

        out.flush(); 
        out.close();       
       } catch(Exception e){ 
        // some action 
       } 
      } 

      @Override 
      public void onBitmapFailed(Drawable errorDrawable) { 
      } 

      @Override 
      public void onPrepareLoad(Drawable placeHolderDrawable) { 
      } 
     } 
    ); 

From here Sie diese Bibliothek herunterladen.

+0

Ich möchte 200 Bilder herunterladen. Dafür muss ich loopen, um diese Bilder herunterzuladen –

+0

@astuter Können Sie mir erklären, wie Sie das Bild nach dem Speichern abrufen? – Signo

+1

@Signo: Überprüfen Sie die Antwort von Dhawal Shoda Parmar, in diesem Link: http://Stackoverflow.com/a/15918369/2571277 – astuter

5

können Sie th Bild herunterladen von einer URL wie folgt aus:

URL url = new URL("http://www.yahoo.com/image_to_read.jpg"); 
InputStream in = new BufferedInputStream(url.openStream()); 
ByteArrayOutputStream out = new ByteArrayOutputStream(); 
byte[] buf = new byte[1024]; 
int n = 0; 
while (-1!=(n=in.read(buf))) 
{ 
    out.write(buf, 0, n); 
} 
out.close(); 
in.close(); 
byte[] response = out.toByteArray(); 

Und Sie sollten dann das Bild speichern, so tun:

FileOutputStream fos = new FileOutputStream("C://borrowed_image.jpg"); 
fos.write(response); 
fos.close(); 
Verwandte Themen