Принятый выше ответ отлично подходит, если вы загружаете изображение на основе нажатия кнопки, однако, если вы делаете это в новом действии, оно замораживает интерфейс на секунду или две.Оглядевшись, я обнаружил, что простая асинхронная задача устраняет эту проблему.
Чтобы использовать асинхронную задачу для добавления этого класса в конце вашей деятельности:
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}
И вызов из вашего метода onCreate () с помощью:
new DownloadImageTask((ImageView) findViewById(R.id.imageView1))
.execute(MY_URL_STRING);
Незабудьте добавить ниже разрешение в вашем файле манифеста
<uses-permission android:name="android.permission.INTERNET"/>
Прекрасно работает для меня.:)