2011-07-08 5 views
5

Im mi aplicación cuando se inicia la pantalla de inicio, solo estoy presionando una URL y obteniendo un archivo XML. A partir de ese archivo XML estoy analizando datos como un nombre de usuario, identificación y una URL para descargar una imagen. Desde esa url quiero descargar una imagen y quiero almacenar la imagen con un nombre particular en mi propia aplicación. Quiero usar la misma imagen como fondo en otra actividad. ¿Cómo puedo descargar y almacenar la imagen en mi aplicación? Dónde se puede almacenar en mi aplicación, ya sea en carpeta sin formato o en dibujable.Android - ¿Cómo descargar una imagen y usarla en tiempo de ejecución?

Antes de almacenar el nombre ¿cómo es que la imagen se puede establecer una imagen de fondo en la actividad particular como, por favor ayúdame amigos

Respuesta

4

Este es el código para descargar la imagen desde una URL:

InputStream in = new URL(image_url).openConnection().getInputStream(); 
Bitmap bm = BitmapFactory.decodeStream(in); 

Tenga en cuenta que se debe hacer de forma asíncrona (como en un AsyncTask)

de lo que puede almacenar el mapa de bits en el sistema usando:

File fullCacheDir = new File(Environment.getExternalStorageDirectory(),cacheDir); 
String fileLocalName = name+".JPEG"; 
File fileUri = new File(fullCacheDir, fileLocalName); 
FileOutputStream outStream = null; 
outStream = new FileOutputStream(fileUri); 
image.compress(Bitmap.CompressFormat.JPEG, 75, outStream); 
outStream.flush(); 

Tenga en cuenta que esto es solo un ejemplo de cómo almacenar su imagen y que hay otras formas. Deberías mirar la documentación de todos modos.

+1

Sólo un menor de edad. Realmente no hay necesidad de invocar 'toString' en' File'. La clase 'File' tiene un constructor que se parece a' File (File parent, String child) ' – Kaj

+0

gracias, voy a actualizar el código –

1

Si lo desea para su aplicación. descargar la imagen mejor guardarlo como ejemplo Disponibles y utilizarlo en su aplicación en la que desea

public static Drawable drawable = null; 

//get image from URL and store it in Drawable instance 

public void getImageFromURL(final String urlString) { 

    Thread thread = new Thread() { 
     @Override 
     public void run() { 
      //TODO : set imageView to a "pending" image 
      InputStream is = null; 
      try{ 
      URLConnection urlConn = new URL(urlString).openConnection(); 

      is= urlConn.getInputStream(); 
      }catch(Exception ex){} 
      drawable = Drawable.createFromStream(is, "src"); 


     } 
    }; 
    thread.start(); 
} 

imagen Conjunto de fondo a cualquier vista

void setImage(View myView){ 
    myView.setBackgroundDrawable(drawable); 
} 
+0

pero aún debes guardarlo en alguna parte. ¿Cómo se almacena un dibujante – Sunny

Cuestiones relacionadas