Вы действительно не должны использовать это, поскольку это блокирует поток пользовательского интерфейса. Эта библиотека будет обрабатывать потоки и загрузку для вас: github.com/koush/UrlImageViewHelper
koush
16
Нет, если вы запускаете этот блок в отдельном потоке за вычетом setImageBitmap
Джонатан
его работу я отображал в виде миниатюр и при просмотре изображения по клику. Я использовал daillay dspog, но он открывается через 10 секунд
Prasad
4
@koush - Этот код будет хорошо, если обернут в AsyncTask.
Грег Браун
2
Любые сетевые операции следует выполнять в отдельном потоке. Когда битмап загружен, вы можете использовать ImageView.post () или Handler.post ()
Владимир Шалашенко,
311
Принятый выше ответ отлично подходит, если вы загружаете изображение на основе нажатия кнопки, однако, если вы делаете это в новом действии, оно останавливает интерфейс на секунду или две. Оглядевшись, я обнаружил, что простая асинхронная задача устраняет эту проблему.
Чтобы использовать асинхронную задачу для добавления этого класса в конце вашей деятельности:
Мне нравится это решение, вы должны просто очистить код для onPostExecute, так как его тело отсутствует.
София
это круто. @ София, что ты имеешь в виду под уборкой? Что делать, если у вас есть неизвестное количество фотографий?
5
@ 5er В первоначальном ответе некоторые скобки были неуместны. С тех пор я очистил его, чтобы вы могли использовать его как есть.
Кайл Клегг
Не забывайте, что нам нужно также добавить разрешение в манифесте: <Использования-разрешения android: name = "android.permission.INTERNET" />
mike20132013
1
Это замечательно для обучения / взлома (upvoted), но для любого производства вы должны использовать библиотеку Imageloader, их так много. Мой любимый - Universal Image Loader, Picasso и т. Д.
AmeyaB
31
попробуй picasssoкрасиво и заканчивай в одном утверждении
UrlImageViewHelper заполнит ImageView изображением, найденным по URL. UrlImageViewHelper автоматически загружает, сохраняет и кэширует все URL-адреса изображений BitmapDrawables. Дубликаты URL не будут загружены в память дважды. Память растрового изображения управляется с помощью хэш-таблицы со слабой ссылкой, поэтому, как только изображение больше не используется вами, оно будет автоматически собирать мусор.
1) Использование библиотеки Glide Это лучший способ загрузить изображение из URL, потому что при попытке отобразить тот же URL во второй раз, оно будет отображаться из улова, так что улучшите производительность приложения
Ответы:
источник
AsyncTask
.Принятый выше ответ отлично подходит, если вы загружаете изображение на основе нажатия кнопки, однако, если вы делаете это в новом действии, оно останавливает интерфейс на секунду или две. Оглядевшись, я обнаружил, что простая асинхронная задача устраняет эту проблему.
Чтобы использовать асинхронную задачу для добавления этого класса в конце вашей деятельности:
И вызов из вашего метода onCreate (), используя:
Не забудьте добавить ниже разрешение в вашем файле манифеста
Прекрасно работает для меня. :)
источник
попробуй
picassso
красиво и заканчивай в одном утвержденииучебное пособие: https://youtu.be/DxRqxsEPc2s
источник
Попробуйте добавить файл Picasso lib jar
источник
в своей деятельности возьмите imageview и установите ресурс imageDownload (url, yourImageview);
источник
UrlImageViewHelper заполнит ImageView изображением, найденным по URL. UrlImageViewHelper автоматически загружает, сохраняет и кэширует все URL-адреса изображений BitmapDrawables. Дубликаты URL не будут загружены в память дважды. Память растрового изображения управляется с помощью хэш-таблицы со слабой ссылкой, поэтому, как только изображение больше не используется вами, оно будет автоматически собирать мусор.
UrlImageViewHelper.setUrlDrawable (imageView, "http://example.com/image.png");
https://github.com/koush/UrlImageViewHelper
источник
На основании этого ответа я пишу свой собственный загрузчик.
С эффектом загрузки и эффектом появления:
Добавить разрешение
И выполнить:
источник
Вот пример кода для отображения изображения из URL.
источник
Лучший метод, который я пробовал вместо использования каких-либо библиотек
источник
добавить интернет-разрешение в манифест
чем создать метод, как показано ниже,
Теперь добавьте это в ваш метод onCreate,
это работает для меня.
источник
Код ниже показывает, как установить ImageView из строки URL-адреса, используя RxAndroid. Сначала добавьте библиотеку RxAndroid 2.0
Теперь используйте setImageFromUrl, чтобы установить изображение.
источник
Есть два пути:
1) Использование библиотеки Glide Это лучший способ загрузить изображение из URL, потому что при попытке отобразить тот же URL во второй раз, оно будет отображаться из улова, так что улучшите производительность приложения
зависимость:
implementation 'com.github.bumptech.glide:glide:4.10.0'
2) Использование Stream. Здесь вы хотите создать растровое изображение из изображения URL
источник
Ну вот
источник
ivdpfirst
?Попробуй это:
источник
источник
Для меня фреска является лучшей среди других библиотек.
Просто настройте Fresco, а затем просто установите imageURI следующим образом:
Проверьте этот ответ, объясняющий некоторые преимущества Fresco.
источник