Как загрузить изображения с URL в виджете приложения Android? - PullRequest
5 голосов
/ 01 ноября 2011

Я делаю виджет похожий на YouTube и по умолчанию Погода / Новости.У меня есть флиппер вида, в котором я динамически добавляю макеты (которые содержат ImageView и TextView), используя:

remoteViews.addView(R.id.viewFlipper, itemViews);

Проблема в том, что мне нужно загрузить изображения из URL в этом макете.Каков наилучший способ сделать это?

У меня есть загрузчик Lazy List, но он не работает на RemoteViews, и даже после модификации я думаю, что не правильно обновлять виджет для каждого изображения, которое может разрядить аккумуляторслишком быстро.

Заранее спасибо.

1 Ответ

0 голосов
/ 29 декабря 2013

Я не совсем уверен, на что вы ссылаетесь, без примера кода, но на сайте Android Developer *1002* есть отличная информация.Поскольку вы хотите имитировать поведение приложения YouTube, вам нужно использовать макет коллекции, например AdapterViewFlipper или StackView.Все это требует RemoteViewsService и RemoteViewsFactory.Лучше всего иметь фон Service, который будет асинхронно загружать нужные вам изображения.

Я думаю, что некорректно обновлять виджет для каждого изображения, которое может слишком быстро разрядить аккумулятор

Это полностью зависит от как часто вы обновляете свой набор изображений.Если приложение обновляет свой набор каждые 12 часов, то я не могу себе представить сколько-нибудь значительного разряда батареи, если предположить, что нет утечек памяти / фоновых задач, постоянно работающих.Если вы по-прежнему обеспокоены, вы можете создать ContentProvider, в котором будут храниться все эти изображения, и только после того, как весь набор будет загружен, вы скажете всем представлениям в коллекции обновить новое содержимое.

...