2010-06-19 11 views
10

Czy można załadować obraz ze zdalnego serwera za pomocą ImageView.setImageURI (Uri uri)?Czy ImageView.setImageURI (Uri uri) działa ze zdalnymi plikami?

+3

Nawiasem mówiąc, jest to 'ImageView.setImageURI (Uri uri)' ('URI'! =' Uri') - duża różnica. – Felix

+1

Jeszcze go nie wypróbowałeś? Używam [this] (http://stackoverflow.com/questions/844972/is-it-possible-to-put-an-image-from-a-url-in-a-imagebutton-in-android) podejście. EDYCJA: [Here] (http://www.dreamincode.net/code/snippet4724.htm) to kolejny fajny przykład. – Macarse

+0

@Felix, dzięki. Naprawiłem to. –

Odpowiedz

12

Krótka odpowiedź brzmi nie! Nie może.

Można użyć ImageView.setImageURI (Uri uri) na przykład, jeśli uri zawiera odniesienie do lokalnego pliku. Np .: file: ///sdcard/images/thumb.png

7

Aby załadować obraz z katalogu, należy najpierw przekonwertować go na Drawable. Oto fragment kodu, który może pomóc:

File file = new File ("/sdcard/1.jpg"); 

ImageView imageView = (ImageView) findViewById(R.id.icon); 

imageView.setImageDrawable(Drawable.createFromPath(file.getAbsolutePath())); 

być ostrzeżony, że nie ma innej metody na ImageView nazywa setImageURI(URI uri). Ta metoda służy do ładowania zewnętrznych plików; nie działa z typem File. Na przykład, ten kod nie zadziała:

File file = new File ("/sdcard/1.jpg"); 

ImageView imageView = (ImageView) findViewById(R.id.icon); 

imageView.setImageURI(Uri.fromFile(file)); 

Dzięki Martin Wibbels dla this post.

+0

Ta ostatnia próbka kodu faktycznie działa dla mnie (poziom API 15 lub mniej). Może to jest coś nowego. Ale zwróć też uwagę, że argumentem 'setImageURI()' jest 'Uri', a nie' URI'. – LarsH