2017-01-12 1 views
1

Pourvu que j'ai un tableau d'URLs d'images, j'essaye de télécharger toutes ces images un-par-un en utilisant le glissement. Actuellement, je suis capable de télécharger une seule image lorsque je fournis son URL. Et voici le code:Comment télécharger plusieurs images en utilisant Glide [Android]?

private void downx() 
{ 
    File sd = getExternalCacheDir(); 
    File folder = new File(sd, "/mobio/"); 
    if (!folder.exists()) { 
     if (!folder.mkdir()) { 
      Log.e("ERROR", "Cannot create a directory!"); 
     } else { 
      folder.mkdirs(); 
     } 
    } 

    final File[] fileName = {new File(folder, "one.jpg"), new File(folder, "two.jpg"),new File(folder, "three.jpg")}; 


    new AsyncTask<Void, Void, Void>() { 
     @Override 
     protected Void doInBackground(Void... params) 
     { 
      try 
      { 
         theBitmap = Glide. 
         with(getApplicationContext()). 
         load(urls[2]). 
         asBitmap(). 
         into(Target.SIZE_ORIGINAL,Target.SIZE_ORIGINAL). 
         get(); 
      } 
      catch (final ExecutionException e) 
      { 
       Log.e("TAG", e.getMessage()); 
      } 
      catch (final InterruptedException e) 
      { 
       Log.e("TAG", e.getMessage()); 
      } 
      return null; 
     } 

     @Override 
     protected void onPostExecute(Void dummy) { 
      if (null != theBitmap) { 
       // The full bitmap should be available here 
       Log.d("TAG", "Image loaded"); 
       Log.e("GLIDE","I am Ready"); 
       try { 
        FileOutputStream outputStream = new FileOutputStream(String.valueOf(fileName[1])); 
        theBitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream); 
        outputStream.close(); 

       } catch (FileNotFoundException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
     } 
    }.execute(); 



} 

Maintenant, le problème est : Quelle approche dois-je adopter si je dois télécharger plusieurs images, et comment puis-je forcer mon code pour adapter à gérer plusieurs téléchargements?

Répondre

-2

Je suppose que ce sera préférable d'utiliser Download Manager comme il traitera faire la queue, la disponibilité du réseau, etc.

0

J'ai utilisé une classe qui prend une liste d'URL et télécharge les images dans un fichier. Veuillez vérifier ceci Gist pour plus. Cela utilise Picasso pour télécharger des images, mais vous pouvez également modifier le code de téléchargement pour utiliser le glissement. Devrait être un changement d'une ligne. J'espère que cela t'aides.

https://gist.github.com/bpr10/a765a015bf1c774816ba58c7ae6413d6