2010-06-19 56 views
10

Kann ein Image von einem Remote-Server mit ImageView.setImageURI (Uri uri) geladen werden?Funktioniert ImageView.setImageURI (Uri uri) mit Remote-Dateien?

+3

Übrigens ist es 'ImageView.setImageURI (Uri uri)' ('URI'! =' Uri') - großer Unterschied. – Felix

+1

Sie haben es noch nicht versucht? Ich benutze [dies] (http://stackoverflow.com/questions/844972/is-it-possible-to-put-an-image-from-a-url-in-a-a-imagebutton-in-android)) Ansatz. EDIT: [Hier] (http://www.dreamincode.net/code/snippet4724.htm) ist ein weiteres cooles Beispiel. – Macarse

+0

@Felix, danke. Ich habe es repariert. –

Antwort

12

Die kurze Antwort ist nein! Es kann nicht.

Sie könnten beispielsweise ImageView.setImageURI (Uri uri) verwenden, wenn die URL einen Verweis auf eine lokale Datei enthält. ZB: file: ///sdcard/images/thumb.png

7

Um ein Bild aus einem Verzeichnis zu laden, sollte es zuerst in eine Drawable konvertiert werden. Hier ist ein Stück Code, der helfen kann:

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

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

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

Seien Sie gewarnt, dass es eine andere Methode für ImageView genannt setImageURI(URI uri). Diese Methode wird verwendet, um externe Dateien zu laden. Es funktioniert nicht mit dem Typ File. Zum Beispiel wird dieser Code nicht funktioniert:

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

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

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

Dank Martin Wibbels für this post.

+0

Das letzte Codebeispiel funktioniert tatsächlich für mich (API Level 15 oder so). Vielleicht ist das eine neue Sache. Beachten Sie aber auch, dass das Argument zu 'setImageURI()' ein 'Uri' ist, kein' URI'. – LarsH