public class TestButton extends Activity { /** Called when the activity is first created. */ ImageButton imgBtn; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); imgBtn = (ImageButton) findViewById(R.id.image); //String url = "http://thenextweb.com/apps/files/2010/03/google_logo.jpg"; String url1 = "http://trueslant.com/michaelshermer/files/2010/03/evil-google.jpg"; Drawable drawable = LoadImage(url1); imgBtn.setImageDrawable(drawable); } private Drawable LoadImage(String url) { try { InputStream is = (InputStream) new URL(url).getContent(); Drawable d = Drawable.createFromStream(is, "src"); return d; } catch (Exception e) { return null; } } }
Above es el fragmento de código que utilizo para cargar imágenes de web en ImageButton. La mayoría de las imágenes se muestran, pero ciertas URL como la anterior, es decir, url1, Drawable.createFromStream devuelve null !! ¿Cuál es el motivo y cómo evitarlo o superar este problema?CreateFromStream en Android que devuelve nulo para cierta url
Ese fallo fue en la versión 1.0 de Android, ¿sigue siendo alrededor de 2.x? En mis pruebas parece ser el caso, pero estoy buscando la confirmación oficial de Google. Además, en su código, ¿a qué le asigna BUFFER_IO_SIZE? – ThomasW
@ThomasW No puedo asegurarlo. Dos cosas de las que estoy seguro es que tienen el mismo comportamiento y la misma solución me funcionó en 2.1 y 2.2 tanto en el emulador como en el dispositivo. Actualizaré mi respuesta para incluir el valor BUFFER_IO_SIZE. – mcveat
Gracias por la solución, funciona. – sat