2010-06-25 8 views

Odpowiedz

143

Aby pobrać obraz i ustawić go jako treści dla 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

dobry kawałek kodu, dzięki – Stevanicus

+0

naprawdę miły kod kolego, szukałem dużo, ale nie znalazłem tego rodzaju prosty przykład –

+0

Edytuj: Usunięto zbędny komentarz! :) – 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

Czy uważasz, że lepiej jest zapisać obraz lokalnie na urządzeniu lub zamiast tego zapisać adres URL w Internecie? (zakładając, że obraz zawsze tam będzie) – 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); 
      } 
     }); 
    } 

Wykorzystanie zmiennej statycznej, aby uzyskać identyfikator obrazu, a następnie załadować go dynamicznie. Sprawdź IMAGE_Number.

5

Ponieważ nie mam wystarczająco dużo punktów, aby dodać komentarz, będę się post ...

Pamiętaj, aby umieścić odpowiedź @ primpap w AsyncTask doInBackground aby zapobiec wątku UI do zamrożenia.

Powiązane problemy