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; } } }
Sopra è il frammento di codice che utilizzo per caricare l'immagine dal web in ImageButton. La maggior parte delle immagini viene visualizzata, ma alcuni URL come quello sopra, cioè url1, Drawable.createFromStream restituisce null !! Qual è la ragione e come evitarlo o superare questo problema?CreateFromStream in Android restituendo null per un certo URL
Questo bug è stato nella versione 1.0 di Android, è ancora in giro in 2.x? Nei miei test sembra essere il caso, ma sto cercando la conferma ufficiale da parte di Google. Inoltre, nel tuo codice, cosa hai impostato su BUFFER_IO_SIZE? – ThomasW
@ThomasW Non posso dirlo con certezza. Due cose di cui sono certo sono che ha lo stesso comportamento e la stessa correzione ha funzionato per me in 2.1 e 2.2 sia su emulatore che su dispositivo. Aggiornerò la mia risposta per includere il valore BUFFER_IO_SIZE. – mcveat
Grazie per la soluzione, funziona. – sat