2010-06-19 22 views
10

¿Es posible cargar una imagen desde un servidor remoto utilizando ImageView.setImageURI (Uri uri)?¿ImageView.setImageURI (Uri uri) funciona con archivos remotos?

+3

Por cierto, es 'ImageView.setImageURI (Uri uri)' ('URI'! =' Uri') - gran diferencia. – Felix

+1

¿Aún no lo has probado? He estado usando [esto] (http://stackoverflow.com/questions/844972/is-it-possible-to-put-an-image-from-a-url-in-a-imagebutton-in-android enfoque) EDITAR: [Aquí] (http://www.dreamincode.net/code/snippet4724.htm) es otro buen ejemplo. – Macarse

+0

@Felix, gracias. Lo arreglé. –

Respuesta

12

¡La respuesta corta es no! No puede.

Puede usar ImageView.setImageURI (Uri uri) por ejemplo si el uri contiene una referencia a un archivo local. Por ejemplo: file: ///sdcard/images/thumb.png

7

Para cargar una imagen de un directorio, primero se debe convertir a Drawable. Aquí es una pieza de código que puede ayudar:

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

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

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

ser advertidos de que hay otro método para ImageView llamada setImageURI(URI uri). Este método se usa para cargar archivos externos; no funciona con el tipo File. Por ejemplo, este código no funcionará:

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

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

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

Gracias a Martin Wibbels para this post.

+0

La última muestra de código realmente funciona para mí (nivel de API 15 aproximadamente). Tal vez eso sea algo nuevo. Pero también tenga en cuenta que el argumento para 'setImageURI()' es un 'Uri', no un' URI'. – LarsH