2010-06-25 25 views

Respuesta

143

Para descargar una imagen y establecerla como contenido para un imageview

try { 
    ImageView i = (ImageView)findViewById(R.id.image); 
    Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL(imageUrl).getContent()); 
    i.setImageBitmap(bitmap); 
} catch (MalformedURLException e) { 
    e.printStackTrace(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
+0

buen pedazo de código, gracias – Stevanicus

+0

código muy agradable amigo, busqué mucho pero no encontré este tipo de ejemplo simple –

+0

Editar: ¡Se eliminó el comentario redundante! :) – COD3BOY

7
// Url = "url of image" 
    Drawable drawable = LoadImageFromWebOperations(Url); 
    mImageofTheMonth.setImageDrawable(drawable); 

private Drawable LoadImageFromWebOperations(String url) { 

    try { 
     InputStream is = (InputStream) new URL(url).getContent(); 
     Drawable d = Drawable.createFromStream(is, "src name"); 
     return d; 
    } catch (Exception e) { 
     System.out.println("Exc=" + e); 
     return null; 
    } 

} 
+0

¿Crees que es mejor almacenar la imagen localmente en el dispositivo o simplemente almacenar la url en la imagen en línea? (suponiendo que la imagen siempre estará allí) – Micro

3
public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     ArrayList<ItemDetails> image_details = GetSearchResults(); 

     final ListView lv1 = (ListView) findViewById(R.id.listV_main); 
     lv1.setAdapter(new ItemListBaseAdapter(this, image_details)); 

     lv1.setOnItemClickListener(new OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> a, View v, int position, long id) { 

       // Launching new Activity on selecting single List Item 
       Intent i = new Intent(getApplicationContext(), ItemDetails.class); 

       Object o = lv1.getItemAtPosition(position); 
       ItemDetails obj_itemDetails = (ItemDetails)o; 

       // sending data to new activity 
       i.putExtra("name", obj_itemDetails.getName()); 
       i.putExtra("description", obj_itemDetails.getItemDescription()); 
       i.putExtra("imagenumber", obj_itemDetails.getImageNumber()); 

       **ItemDetails.IMAGE_NUMBER = obj_itemDetails.getImageNumber();** 
       startActivity(i); 
      } 
     }); 
    } 

Uso variable estática para obtener el ID de la imagen y luego cargarla de forma dinámica. Verifique el IMAGE_Número.

5

Dado que no tengo suficientes puntos para agregar un comentario, voy a hacer un post ...

recuerda poner la respuesta de @ primpap en AsyncTask doInBackground para evitar que el hilo de interfaz de usuario para congelar.

Cuestiones relacionadas