Si no es un URI de contenido, this link puede ayudar. Parece indicar que imgView.setImageURI()
no se debe utilizar para URI regulares. Copia en el bit correspondiente:
Sí, ImageView.setImageURI(ContentURI uri)
obras, pero es por el contenido de los URI en particular a la plataforma Android, no URIs que especifican los recursos de Internet. La convención se aplica a objetos binarios (imágenes, por ejemplo) que no pueden exponerse directamente a través de los métodos del Cursor de un proveedor de contenido. En su lugar, se utiliza una referencia de cadena para hacer referencia a un URI de contenido distinto, que se puede resolver mediante una consulta separada contra el proveedor de contenido. El método setImageURI es simplemente un contenedor para realizar esos pasos por usted.
He probado este uso de setImageView
, y funciona como se esperaba. Para su uso, sin embargo, miraría BitmapFactory.decodeStream()
y URL.openStream()
.
también a hacer que esta respuesta en sí misma, el código de ejemplo de otro puesto en ese enlace, que muestra cómo hacerlo:
private Bitmap getImageBitmap(String url) {
Bitmap bm = null;
try {
URL aURL = new URL(url);
URLConnection conn = aURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
bm = BitmapFactory.decodeStream(bis);
bis.close();
is.close();
} catch (IOException e) {
Log.e(TAG, "Error getting bitmap", e);
}
return bm;
}
No he probado este código, sólo soy paranoico y me gusta asegurar que las respuestas SO sean útiles incluso si cualquier otro sitio en la red desaparece :-)